SQLAlchemy Core - Verbindung zur Datenbank herstellen
Im vorherigen Kapitel haben wir den Ausdruck Sprache in SQLAlchemy besprochen. Fahren wir nun mit den Schritten fort, die beim Herstellen einer Verbindung zu einer Datenbank erforderlich sind.
Motorklasse verbindet a Pool and Dialect together um eine Datenbankquelle bereitzustellen connectivity and behavior. Ein Objekt der Engine-Klasse wird mit dem instanziiertcreate_engine() Funktion.
Die Funktion create_engine () verwendet die Datenbank als ein Argument. Die Datenbank muss nirgendwo definiert werden. Das Standardaufrufformular muss die URL als erstes Positionsargument senden, normalerweise eine Zeichenfolge, die Datenbankdialekt- und Verbindungsargumente angibt. Mit dem unten angegebenen Code können wir eine Datenbank erstellen.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Für ein MySQL databaseVerwenden Sie den folgenden Befehl -
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
Um es ausdrücklich zu erwähnen DB-API für die Verbindung verwendet werden, die URL string nimmt die Form wie folgt an -
dialect[+driver]://user:password@host/dbname
Zum Beispiel, wenn Sie verwenden PyMySQL driver with MySQLVerwenden Sie den folgenden Befehl:
mysql+pymysql://<username>:<password>@<host>/<dbname>
Das echo flagist eine Verknüpfung zum Einrichten der SQLAlchemy-Protokollierung, die über das Standardprotokollierungsmodul von Python erfolgt. In den folgenden Kapiteln lernen wir alle generierten SQLs kennen. Um die ausführliche Ausgabe auszublenden, setzen Sie das Echo-Attribut aufNone. Andere Argumente für die Funktion create_engine () können dialektspezifisch sein.
Die Funktion create_engine () gibt eine zurück Engine object. Einige wichtige Methoden der Motorklasse sind -
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | connect() Gibt das Verbindungsobjekt zurück |
2 | execute() Führt ein SQL-Anweisungskonstrukt aus |
3 | begin() Gibt einen Kontextmanager zurück, der eine Verbindung mit einer eingerichteten Transaktion bereitstellt. Nach erfolgreichem Betrieb wird die Transaktion festgeschrieben, andernfalls wird sie zurückgesetzt |
4 | dispose() Entsorgt den von der Engine verwendeten Verbindungspool |
5 | driver() Treibername des von der Engine verwendeten Dialekts |
6 | table_names() Gibt eine Liste aller in der Datenbank verfügbaren Tabellennamen zurück |
7 | transaction() Führt die angegebene Funktion innerhalb einer Transaktionsgrenze aus |