Встречается на собеседованиях • сегодня

Как работаешь с транзакциями в БД

В Python для работы с транзакциями обычно используют контекстные менеджеры. Для SQLAlchemy:

python
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine('postgresql://user:pass@localhost/db')
Session = sessionmaker(bind=engine)

with Session() as session:
    try:
        # Операции внутри транзакции
        session.add(some_object)
        session.execute(some_query)
        # Фиксация при успехе
        session.commit()
    except Exception:
        # Откат при ошибке
        session.rollback()
        raise

Для Django ORM транзакции работают через декораторы или контекстные менеджеры:

python
from django.db import transaction

@transaction.atomic
def viewfunc(request):
    # Весь код выполняется в транзакции
    do_something()

# Или с контекстом
with transaction.atomic():
    Model.objects.create(...)

Ключевые моменты:

  1. Транзакция либо полностью выполняется, либо полностью откатывается
  2. Важно явно обрабатывать исключения и делать rollback
  3. В Django можно использовать savepoints для вложенных транзакций
  4. Уровни изоляции можно настраивать под требования приложения
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы