Выбор ответа Middle FastAPI и Pydantic спрашивают часто обновлено

Зависимость с yield

Вопрос

Что делает код после yield в зависимости get_session?

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

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

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

Коротко

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

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

  1. Выполняется до вызова обработчика, сразу после подготовки сессии
  2. После обработки запроса: закрывает сессию, откатывает при ошибкеправильный ответ
  3. Не выполняется, если обработчик вернул ответ без исключения
  4. Выполняется один раз при остановке приложения, как shutdown-хук

Разбор

Зависимость с yield работает как контекстный менеджер на время запроса: до yield подготовка, после yield очистка. Если обработчик бросил исключение, оно приходит в точку yield, и его можно обработать в try/except. Ресурсы на всё время жизни приложения создают в lifespan.

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

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