Сопоставление Middle SQLAlchemy 2.0 обновлено

Аналоги Django ORM в SQLAlchemy

Вопрос

Сопоставьте конструкцию Django ORM и её аналог в SQLAlchemy 2.0.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Идеи у ORM одинаковые: JOIN для связей к одному, второй запрос для коллекций, блокировка строк, явная транзакция. Отличие в том, что в SQLAlchemy есть явная Session с identity map, а в Django соединение и транзакция привязаны к потоку неявно.

Правильные пары

select_related
joinedload
prefetch_related
selectinload
select_for_update()
with_for_update()
Model.objects.filter(...)
session.scalars(select(Model).where(...))
transaction.atomic()
with session.begin():

Разбор

Идеи у ORM одинаковые: JOIN для связей к одному, второй запрос для коллекций, блокировка строк, явная транзакция. Отличие в том, что в SQLAlchemy есть явная Session с identity map, а в Django соединение и транзакция привязаны к потоку неявно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме