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

Метод get_transaction

Метод get_transaction класса Session возвращает объект текущей транзакции, если она была начата, или значение None в противном случае. Метод не принимает параметров и не начинает новую транзакцию - он только позволяет получить доступ к уже существующей транзакции верхнего уровня. Это удобно для проверки состояния сессии и управления логикой работы с транзакциями.

Синтаксис

Session.get_transaction()

Пример

Давайте создадим сессию и проверим, есть ли у нее активная транзакция до и после вызова метода begin:

from sqlalchemy import create_engine from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: print(session.get_transaction()) trans = session.begin() print(session.get_transaction())

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

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

Пример

Давайте сравним объект, возвращаемый методом get_transaction, с объектом, полученным при вызове begin:

from sqlalchemy import create_engine from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: trans = session.begin() print(session.get_transaction() is trans)

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

True

Пример

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

from sqlalchemy import create_engine, text from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: trans = session.begin() session.execute(text('SELECT 1')) trans.commit() print(session.get_transaction())

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

None

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

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