Выбор ответа Junior SQLAlchemy 2.0 спрашивают часто обновлено

Engine и Session в SQLAlchemy

Вопрос

Чем Engine отличается от Session в SQLAlchemy?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: Engine один на приложение с пулом, Session короткая единица работы. Engine знает URL базы и управляет пулом соединений, его создают при старте.

Варианты ответа

  1. Это одно и то же: Session это старое имя Engine из SQLAlchemy 1.x
  2. Session создаётся один раз на приложение, а Engine на каждый запрос
  3. Engine один на приложение с пулом, Session короткая единица работыправильный ответ
  4. Engine нужен для миграций Alembic, а запросы идут через Session

Разбор

Engine знает URL базы и управляет пулом соединений, его создают при старте. Session берёт соединение из пула, отслеживает загруженные и изменённые объекты и коммитит их. Обычно сессия живёт один запрос или одну задачу. Создавать Engine на каждый запрос значит каждый раз заново открывать соединения, и миграции тут ни при чём.

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

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

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