Установка
| Команда | Описание |
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 | Альтернативное имя в JSON | alias="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 модели |
Специальные типы
| Тип | Импорт | Описание |
EmailStr | from pydantic import EmailStr | Валидный email |
HttpUrl | from pydantic import HttpUrl | Валидный URL |
PositiveInt | from pydantic import PositiveInt | Положительное целое |
NonNegativeInt | from pydantic import NonNegativeInt | Неотрицательное целое |
constr | from pydantic import constr | Ограниченная строка |
conint | from 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' |