Метод configure класса async_sessionmaker
Метод configure класса async_sessionmaker
позволяет изменить настройки уже созданной
фабрики асинхронных сессий. Метод принимает
те же именованные параметры, что и конструктор
класса: bind, expire_on_commit,
class_, autoflush и другие.
Он возвращает сам объект async_sessionmaker,
что позволяет применять цепочку вызовов.
Синтаксис
async_sessionmaker.configure(**kwargs)
Пример
Давайте создадим фабрику асинхронных сессий
и затем изменим ее привязку к движку
с помощью метода configure:
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
session_factory = async_sessionmaker()
session_factory.configure(bind=engine)
print(session_factory.kw['bind'])
Результат выполнения кода:
"Engine(sqlite+aiosqlite:///:memory:)"
Пример
Давайте изменим сразу несколько параметров
фабрики: expire_on_commit и
autoflush:
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
session_factory = async_sessionmaker(bind=engine, expire_on_commit=True)
session_factory.configure(expire_on_commit=False, autoflush=False)
print(session_factory.kw['expire_on_commit'])
print(session_factory.kw['autoflush'])
Результат выполнения кода:
False
False
Пример
Давайте применим метод configure
в цепочке вызовов вместе с begin
для выполнения запроса:
from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
import asyncio
async def main():
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
session_factory = async_sessionmaker().configure(bind=engine)
async with session_factory.begin() as session:
res = await session.execute(text('SELECT 1'))
print(res.scalar())
asyncio.run(main())
Результат выполнения кода:
1
Смотрите также
-
класс
async_sessionmaker,
который создает фабрику асинхронных сессий -
метод
begin,
который открывает транзакцию и возвращает сессию -
метод
configure,
который изменяет настройки фабрики сессий -
класс
async_sessionmaker,
который управляет созданием асинхронных сессий