Как работает session management в SQLAlchemy?

Middle
235 просмотров
AFK Offer AI

Session — unit of work, отслеживает изменения объектов и синхронизирует с БД. session.add(obj) — добавить. session.commit() — записать в БД. session.rollback() — откатить. session.flush() — отправить SQL без commit. Identity Map — один объект = один экземпляр в сессии. Scoped session (scoped_session) — одна сессия на поток/запрос. В FastAPI: зависимость с yield для per-request session. Не держи сессию открытой долго — блокирует соединение. expire_on_commit=False — объекты доступны после commit.

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

Что такое __slots__ и зачем они нужны?