Класс Engine
Класс Engine представляет собой центральный объект
для работы с базой данных в SQLAlchemy. Он управляет
пулом соединений, диалектом СУБД и параметрами
логирования. Экземпляр класса создается функцией
create_engine, а не напрямую. Движок не
устанавливает соединение сразу, а делает это лениво
при первом запросе.
Синтаксис
from sqlalchemy import create_engine
engine = create_engine(url, [echo])
Пример
Давайте создадим движок для базы SQLite
в памяти и выведем информацию о нем:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print(engine)
print(engine.url)
Результат выполнения кода:
Engine(sqlite:///:memory:)
sqlite:///:memory:
Пример
Давайте выполним простой SQL-запрос через движок:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
res = conn.execute(text('SELECT 1'))
print(res.scalar())
Результат выполнения кода:
1
Пример
Давайте посмотрим на атрибуты движка, такие как
name, driver и echo:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print(engine.name)
print(engine.driver)
print(engine.echo)
Результат выполнения кода:
sqlite
pysqlite
False
Пример
Давайте включим логирование SQL-запросов через
параметр echo:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:', echo=True)
with engine.connect() as conn:
conn.execute(text('SELECT 1'))
Итоговый SQL запрос:
SELECT 1