Метод configure класса sessionmaker
Метод configure класса sessionmaker
позволяет изменить параметры уже созданной
фабрики сессий. Первым параметром метод
принимает словарь с новыми настройками,
которые применяются к объекту.
Синтаксис
sessionmaker.configure(**kwargs)
Пример
Давайте создадим фабрику сессий и изменим
ее настройку echo через метод configure:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///:memory:')
Session = sessionmaker(bind=engine)
Session.configure(echo=True)
print(Session.kw)
Результат выполнения кода:
"{'bind': Engine(sqlite:///:memory:), 'echo': True}"
Пример
Давайте применим метод configure для
смены движка у существующей фабрики сессий:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine_one = create_engine('sqlite:///:memory:')
engine_two = create_engine('sqlite:///:memory:')
Session = sessionmaker(bind=engine_one)
print(Session.kw['bind'])
Session.configure(bind=engine_two)
print(Session.kw['bind'])
Результат выполнения кода:
"Engine(sqlite:///:memory:)"
"Engine(sqlite:///:memory:)"
Пример
Давайте изменим фабрику сессий и выполним запрос к базе данных с новыми настройками:
from sqlalchemy import create_engine, text
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///:memory:')
Session = sessionmaker(bind=engine)
Session.configure(echo=True)
with Session() as session:
res = session.execute(text('SELECT 1')).scalar()
print(res)
Итоговый SQL запрос:
SELECT 1
Результат выполнения кода:
"1"
Смотрите также
-
класс
sessionmaker,
который создает фабрику сессий -
метод
begin,
который открывает транзакцию сессии -
метод
__call__,
который создает объект сессии -
метод
configure,
который изменяет настройки фабрики сессий