🔖 Справочник

Установка

КомандаОписание
pip install pydanticБазовая установка Pydantic
pip install pydantic[email]С поддержкой EmailStr

Параметры Field()

ПараметрОписаниеПример
defaultЗначение по умолчаниюdefault=True
default_factoryФабрика значенийdefault_factory=list
gtБольше чемgt=0
geБольше или равноge=18
ltМеньше чемlt=100
leМеньше или равноle=99
min_lengthМин. длина строкиmin_length=2
max_lengthМакс. длина строкиmax_length=50
aliasАльтернативное имя в JSONalias="available"
descriptionОписание поляdescription="Цена"

Методы BaseModel (Pydantic v2)

МетодОписание
model_validate(data)Валидация словаря → объект
model_validate_json(json_str)Валидация JSON-строки → объект
model_dump()Сериализация → словарь
model_dump_json()Сериализация → JSON-строка
model_copy()Создать копию объекта
model_json_schema()JSON Schema модели

Специальные типы

ТипИмпортОписание
EmailStrfrom pydantic import EmailStrВалидный email
HttpUrlfrom pydantic import HttpUrlВалидный URL
PositiveIntfrom pydantic import PositiveIntПоложительное целое
NonNegativeIntfrom pydantic import NonNegativeIntНеотрицательное целое
constrfrom pydantic import constrОграниченная строка
conintfrom pydantic import conintОграниченное целое

Настройки модели: model_config (ConfigDict)

В Pydantic v2 задаются как model_config = ConfigDict(...) (в v1 — вложенный class Config).

ПараметрОписание
str_strip_whitespaceОбрезать пробелы по краям строк
str_min_lengthМинимальная длина всех строк
validate_assignmentВалидировать при присваивании полей
json_encoders (v1, deprecated)Кастомные энкодеры JSON; в v2 используйте декоратор @field_serializer
frozenЗапретить изменение полей (immutable)
extraПоведение при лишних полях: 'forbid', 'ignore', 'allow'