Какой функцией создается движок SQLAlchemy?

Ответ

Для создания движка (engine) в SQLAlchemy используется функция create_engine(). Эта функция является центральной точкой входа для взаимодействия с базой данных. Она принимает строку подключения к БД и возвращает объект Engine, который управляет пулом соединений и диалектом базы данных.

Примеры использования create_engine() для разных баз данных:

from sqlalchemy import create_engine

# Для SQLite (файл в текущей директории)
engine_sqlite = create_engine('sqlite:///database.db')

# Для PostgreSQL
# Формат: 'postgresql://user:password@host:port/dbname'
engine_pg = create_engine('postgresql://user:password@localhost:5432/mydatabase')

# Для MySQL с использованием драйвера PyMySQL
# Формат: 'mysql+pymysql://user:password@host:port/dbname'
engine_mysql = create_engine('mysql+pymysql://user:password@localhost:3306/mydb')

Дополнительные параметры, которые можно передать в create_engine():

  • echo=True: Включает логирование всех SQL-запросов, выполняемых движком, что очень полезно для отладки.
  • pool_size=N: Устанавливает максимальное количество соединений в пуле. По умолчанию 5.
  • max_overflow=M: Максимальное количество соединений, которые могут быть созданы сверх pool_size при пиковой нагрузке.
  • future=True: Активирует использование API 2.0 стиля, который является рекомендуемым для новых проектов.

Объект Engine является фундаментальным компонентом SQLAlchemy, обеспечивающим низкоуровневое взаимодействие с базой данных.