Карточка Middle FastAPI и Pydantic обновлено
Валидаторы Pydantic v2
Вопрос
Какие валидаторы есть в Pydantic v2?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
@fieldvalidator("field") для одного поля (режимы before, after, wrap, plain), @modelvalidator(mode="before" "after") для проверок всей модели, ограничения в Field(ge=, le=, minlength=, pattern=), а также Annotated-типы с AfterValidator и BeforeValidator.
Ответ
@field_validator("field") для одного поля (режимы before, after, wrap, plain), @model_validator(mode="before" | "after") для проверок всей модели, ограничения в Field(ge=, le=, min_length=, pattern=), а также Annotated-типы с AfterValidator и BeforeValidator.
Разбор
Для проверок между полями удобен model_validator(mode="after"): все поля уже приведены к типам.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «FastAPI и Pydantic»
- Откуда в FastAPI ответ 422
- Annotated в параметрах FastAPI
- BackgroundTasks или очередь задач
- httpx.AsyncClient на каждый запрос
- Разбор и проверка query-параметров
- Граф зависимостей с кешем на запрос
- Подмена зависимостей в тестах
- Сколько раз вызывается зависимость