Выбор ответа Middle FastAPI и Pydantic спрашивают часто обновлено
Зависимость с yield
Вопрос
Что делает код после yield в зависимости get_session?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: После обработки запроса: закрывает сессию, откатывает при ошибке. Зависимость с yield работает как контекстный менеджер на время запроса: до yield подготовка, после yield очистка.
Варианты ответа
- Выполняется до вызова обработчика, сразу после подготовки сессии
- После обработки запроса: закрывает сессию, откатывает при ошибкеправильный ответ
- Не выполняется, если обработчик вернул ответ без исключения
- Выполняется один раз при остановке приложения, как shutdown-хук
Разбор
Зависимость с yield работает как контекстный менеджер на время запроса: до yield подготовка, после yield очистка. Если обработчик бросил исключение, оно приходит в точку yield, и его можно обработать в try/except. Ресурсы на всё время жизни приложения создают в lifespan.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «FastAPI и Pydantic»
- Откуда в FastAPI ответ 422
- Annotated в параметрах FastAPI
- BackgroundTasks или очередь задач
- httpx.AsyncClient на каждый запрос
- Разбор и проверка query-параметров
- Граф зависимостей с кешем на запрос
- Подмена зависимостей в тестах
- Сколько раз вызывается зависимость