Установление связи - двигатель

Началом любого приложения SQLAlchemy является объект под названием Engine. Этот объект действует как центральный источник соединений с определенной базой данных, предоставляя как фабрику, так и место хранения, называемое connection pool для этих соединений с базой данных. Фабрика обычно является глобальным объектом, созданным только один раз для определенного сервера баз данных, и конфигурируется с помощью строки URL, которая описывает, как она должна подключаться к узлу базы данных или бэкенду.

В этом учебнике мы будем использовать базу данных SQLite, содержащую только память. Это простой способ тестирования, не требующий наличия уже существующей базы данных. База Engine создается с помощью create_engine(), указывая флаг create_engine.future, установленный на True, чтобы полностью использовать возможности 2.0 style:

>>> from sqlalchemy import create_engine
>>> engine = create_engine("sqlite+pysqlite:///:memory:", echo=True, future=True)

Основным аргументом create_engine является строка URL, переданная выше как строка "sqlite+pysqlite:///:memory:". Эта строка указывает Engine на три важных факта:

  1. С какой базой данных мы взаимодействуем? Это часть sqlite, которая в SQLAlchemy связывается с объектом, известным как dialect.

  2. Что DBAPI мы используем? Python DBAPI - это сторонний драйвер, который SQLAlchemy использует для взаимодействия с определенной базой данных. В данном случае мы используем имя pysqlite, которое в современном Python является интерфейсом стандартной библиотеки sqlite3 для SQLite. Если это имя опущено, SQLAlchemy будет использовать стандартный интерфейс DBAPI для конкретной выбранной базы данных.

  3. Как мы находим базу данных? В данном случае наш URL включает фразу /:memory:, которая является индикатором для модуля sqlite3, что мы будем использовать базу данных in-memory-only. Этот тип базы данных идеально подходит для экспериментов, поскольку он не требует ни сервера, ни создания новых файлов.

Мы также указали параметр create_engine.echo, который будет предписывать Engine записывать весь SQL, который он выдает, в логгер Python, который будет писать в стандартный выход. Этот флаг является сокращенным способом настройки Python logging more formally и полезен для экспериментов в сценариях. Многие примеры SQL будут включать этот вывод журнала SQL под ссылкой [SQL], при нажатии на которую будет показано полное взаимодействие SQL.

Вернуться на верх