SQLAlchemy Core - подключение к базе данных

В предыдущей главе мы обсудили язык выражений в SQLAlchemy. Теперь перейдем к шагам, связанным с подключением к базе данных.

Класс двигателя подключает Pool and Dialect together предоставить источник базы данных connectivity and behavior. Объект класса Engine создается с использованиемcreate_engine() функция.

Функция create_engine () принимает базу данных как один аргумент. База данных не требуется нигде определять. Стандартная форма вызова должна отправлять URL-адрес в качестве первого позиционного аргумента, обычно это строка, указывающая диалект базы данных и аргументы подключения. Используя приведенный ниже код, мы можем создать базу данных.

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

Для MySQL databaseиспользуйте следующую команду -

engine = create_engine("mysql://user:pwd@localhost/college",echo = True)

Чтобы конкретно упомянуть DB-API для подключения URL string принимает следующий вид -

dialect[+driver]://user:password@host/dbname

Например, если вы используете PyMySQL driver with MySQLиспользуйте следующую команду -

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

В echo flag- это ярлык для настройки ведения журнала SQLAlchemy, который выполняется с помощью стандартного модуля ведения журнала Python. В следующих главах мы изучим все сгенерированные SQL-запросы. Чтобы скрыть подробный вывод, установите для атрибута echo значениеNone. Другие аргументы функции create_engine () могут зависеть от диалекта.

Функция create_engine () возвращает Engine object. Некоторые важные методы класса Engine:

Sr. No. Метод и описание
1

connect()

Возвращает объект подключения

2

execute()

Выполняет конструкцию оператора SQL

3

begin()

Возвращает диспетчер контекста, доставляющий соединение с установленной транзакцией. После успешной операции транзакция фиксируется, в противном случае выполняется откат

4

dispose()

Удаляет пул соединений, используемый Engine

5

driver()

Имя драйвера диалекта, используемого движком

6

table_names()

Возвращает список всех имен таблиц, доступных в базе данных

7

transaction()

Выполняет заданную функцию в границах транзакции