РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
587 of 711 menu

Метод get_transaction

Метод get_transaction класса AsyncSession возвращает объект текущей транзакции, связанной с асинхронной сессией. Если активная транзакция отсутствует, метод возвращает None. Метод не принимает параметров и не является асинхронным, то есть вызывается без await.

Метод полезен, когда нужно проверить, была ли уже начата транзакция, прежде чем выполнять операции, требующие явного управления транзакцией.

Синтаксис

session.get_transaction()

Пример

Давайте создадим асинхронную сессию и проверим транзакцию до ее начала:

import asyncio from sqlalchemy.ext.asyncio import ( create_async_engine, AsyncSession ) async def main(): engine = create_async_engine('sqlite+aiosqlite:///:memory:') async with AsyncSession(engine) as session: res = session.get_transaction() print(res) asyncio.run(main())

Результат выполнения кода:

None

Пример

Давайте начнем транзакцию методом begin и получим ее через get_transaction:

import asyncio from sqlalchemy.ext.asyncio import ( create_async_engine, AsyncSession ) async def main(): engine = create_async_engine('sqlite+aiosqlite:///:memory:') async with AsyncSession(engine) as session: async with session.begin(): res = session.get_transaction() print(res) asyncio.run(main())

Результат выполнения кода:

<sqlalchemy.orm.session.SessionTransaction object at 0x...>

Пример

Давайте проверим, что после завершения транзакции метод снова возвращает None:

import asyncio from sqlalchemy.ext.asyncio import ( create_async_engine, AsyncSession ) async def main(): engine = create_async_engine('sqlite+aiosqlite:///:memory:') async with AsyncSession(engine) as session: async with session.begin(): inside = session.get_transaction() print(inside is not None) after = session.get_transaction() print(after) asyncio.run(main())

Результат выполнения кода:

True None

Смотрите также

  • класс AsyncSession,
    который представляет асинхронную сессию
  • метод begin,
    который начинает транзакцию
  • метод commit,
    который фиксирует транзакцию
  • метод rollback,
    который откатывает транзакцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить