Какие схемы реализовывал на pydantic
Python
Middle
Без компании
Какие схемы реализовывал на pydantic
Ответы
Pydantic позволяет реализовывать различные схемы валидации данных. Основные сценарии:
- **Базовые модели** - простые DTO для валидации входных/выходных данных:
```
class User(BaseModel):
id: int
name: str = "John Doe"
email: EmailStr
```
- **Вложенные модели** - композиция объектов:
```
class Address(BaseModel):
city: str
street: str
class User(BaseModel):
address: Address
```
- **Динамические модели** - создание моделей на лету с `create_model`:
```
DynamicUser = create_model('DynamicUser', age=(int, ...))
```
- **Настройка валидации** - кастомные валидаторы через декораторы:
```
@validator('name')
def name_must_contain_space(cls, v):
if ' ' not in v:
raise ValueError('must contain a space')
return v.title()
```
- **Работа с API** - модели для запросов/ответов в FastAPI:
```
class ItemCreate(BaseModel):
name: str
price: float
class ItemResponse(ItemCreate):
id: int
created_at: datetime
```
- **Наследование моделей** - расширение базовых моделей:
```
class BaseUser(BaseModel):
email: str
class AdminUser(BaseUser):
is_admin: bool = True
```
Pydantic особенно полезен для парсинга и валидации данных из JSON, env-переменных, конфигов.