SQLAlchemy Core - Connessione al database

Nel capitolo precedente, abbiamo discusso del linguaggio delle espressioni in SQLAlchemy. Ora procediamo verso i passaggi coinvolti nella connessione a un database.

La classe del motore collega a Pool and Dialect together per fornire una fonte di database connectivity and behavior. Un oggetto della classe Engine viene istanziato utilizzando ilcreate_engine() funzione.

La funzione create_engine () accetta il database come un argomento. Il database non è necessario per essere definito da nessuna parte. Il modulo di chiamata standard deve inviare l'URL come primo argomento posizionale, di solito una stringa che indica il dialetto del database e gli argomenti di connessione. Utilizzando il codice fornito di seguito, possiamo creare un database.

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)

Per un MySQL database, usa il comando seguente -

engine = create_engine("mysql://user:[email protected]/college",echo = True)

Per menzionare specificamente DB-API da utilizzare per la connessione, il URL string assume la forma come segue:

dialect[+driver]://user:[email protected]/dbname

Ad esempio, se stai usando PyMySQL driver with MySQL, usa il seguente comando:

mysql+pymysql://<username>:<password>@<host>/<dbname>

Il echo flagè una scorciatoia per impostare la registrazione di SQLAlchemy, che viene eseguita tramite il modulo di registrazione standard di Python. Nei capitoli successivi impareremo tutti gli SQL generati. Per nascondere l'output dettagliato, impostare l'attributo echo suNone. Altri argomenti per la funzione create_engine () possono essere specifici del dialetto.

La funzione create_engine () restituisce un file Engine object. Alcuni metodi importanti della classe Engine sono:

Sr.No. Metodo e descrizione
1

connect()

Restituisce l'oggetto di connessione

2

execute()

Esegue un costrutto di istruzione SQL

3

begin()

Restituisce un gestore di contesto che consegna una connessione con una transazione stabilita. In caso di operazione riuscita, la Transazione viene confermata, altrimenti viene annullata

4

dispose()

Elimina il pool di connessioni utilizzato dall'Engine

5

driver()

Nome driver del dialetto utilizzato dal motore

6

table_names()

Restituisce un elenco di tutti i nomi di tabella disponibili nel database

7

transaction()

Esegue la funzione data entro un limite di transazione