Назад к вопросам
Middle
73
questionbank

Какие данные можно валидировать с помощью Pydantic?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Pydantic позволяет валидировать следующие типы данных:

  • Стандартные типы Python: int, float, str, bool, list, dict, tuple, set, bytes, bytearray.
  • Вложенные модели Pydantic: Позволяет создавать комплексные структуры.
  • Перечисления (Enums): Ограничивает возможные значения предопределенным набором.
  • Даты и время: datetime, date, time, timediff.
  • UUIDs: Для уникальныхGлоGальноG id.
  • URL: С проверкой формата.
  • IPv4/IPv6 адреса: С проверкой формата.
  • E-mail адреса: С базовой проверкой формата.
  • Типы из модуля typing: Optional, Union, Literal, Final, Annotated и другие.
  • Пользовательские типы: Путем определения валидаторов.

Пример валидации:

from pydantic import BaseModel, Field, EmailStr
from typing import List, Optional
from datetime import date

class User(BaseModel):
    user_id: int = Field(gt=0) // Целое число, больше 0
    username: str = Field(min_length=3) // Строка, минимум 3 символа
    email: EmailStr // Строка, валидный email
    is_active: bool = True // Булево (по умолчанию True)
    registration_date: date // Дата
    tags: Optional[List[str]] = None // Опциональный список строк

class Product(BaseModel):
    product_id: int
    name: str
    price: float = Field(ge=0) // Число с точкой, больше или равно 0