SQLAlchemy Core - łączenie z bazą danych
W poprzednim rozdziale omówiliśmy język wyrażeń w SQLAlchemy. Przejdźmy teraz do kroków związanych z łączeniem się z bazą danych.
Klasa silnika łączy a Pool and Dialect together aby zapewnić źródło bazy danych connectivity and behavior. Obiekt klasy Engine jest tworzony przy użyciu rozszerzeniacreate_engine() funkcjonować.
Funkcja create_engine () przyjmuje bazę danych jako jeden argument. Baza danych nie musi być nigdzie definiowana. Standardowy formularz wywołujący musi wysyłać adres URL jako pierwszy argument pozycyjny, zwykle jest to ciąg znaków wskazujący dialekt bazy danych i argumenty połączenia. Korzystając z podanego poniżej kodu możemy stworzyć bazę danych.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Dla MySQL databaseużyj poniższego polecenia -
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
Aby konkretnie wspomnieć DB-API do użycia do połączenia URL string przyjmuje następującą postać -
dialect[+driver]://user:password@host/dbname
Na przykład, jeśli używasz PyMySQL driver with MySQLużyj następującego polecenia -
mysql+pymysql://<username>:<password>@<host>/<dbname>
Plik echo flagjest skrótem do konfiguracji rejestrowania SQLAlchemy, które jest realizowane za pośrednictwem standardowego modułu logowania Pythona. W kolejnych rozdziałach poznamy wszystkie wygenerowane SQL. Aby ukryć szczegółowe dane wyjściowe, ustaw atrybut echo naNone. Inne argumenty funkcji create_engine () mogą być specyficzne dla dialektu.
Funkcja create_engine () zwraca plik Engine object. Niektóre ważne metody klasy Engine to -
Sr.No. | Metoda i opis |
---|---|
1 | connect() Zwraca obiekt połączenia |
2 | execute() Wykonuje konstrukcję instrukcji SQL |
3 | begin() Zwraca menedżera kontekstu dostarczającego połączenie z ustanowioną transakcją. Po pomyślnej operacji transakcja jest zatwierdzana, w przeciwnym razie jest wycofywana |
4 | dispose() Usuwa pulę połączeń używaną przez Engine |
5 | driver() Nazwa sterownika dialektu używanego przez silnik |
6 | table_names() Zwraca listę wszystkich nazw tabel dostępnych w bazie danych |
7 | transaction() Wykonuje daną funkcję w granicach transakcji |