Выбор ответа Junior SQLAlchemy 2.0 спрашивают часто обновлено
Engine и Session в SQLAlchemy
Вопрос
Чем Engine отличается от Session в SQLAlchemy?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Engine один на приложение с пулом, Session короткая единица работы. Engine знает URL базы и управляет пулом соединений, его создают при старте.
Варианты ответа
- Это одно и то же: Session это старое имя Engine из SQLAlchemy 1.x
- Session создаётся один раз на приложение, а Engine на каждый запрос
- Engine один на приложение с пулом, Session короткая единица работыправильный ответ
- Engine нужен для миграций Alembic, а запросы идут через Session
Разбор
Engine знает URL базы и управляет пулом соединений, его создают при старте. Session берёт соединение из пула, отслеживает загруженные и изменённые объекты и коммитит их. Обычно сессия живёт один запрос или одну задачу. Создавать Engine на каждый запрос значит каждый раз заново открывать соединения, и миграции тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.