РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
173 of 307 menu

Класс BaseModel

Класс BaseModel импортируется из модуля pydantic и служит основой для описания моделей данных в FastAPI. От него наследуются собственные классы, в которых через аннотации типов задаются поля. При создании экземпляра Pydantic проверяет входные данные, приводит их к нужным типам и выбрасывает ошибку валидации при несоответствии. Модели BaseModel используются в качестве схем для тела запроса, ответа и вложенных структур.

Синтаксис

from pydantic import BaseModel class ModelName(BaseModel): field: type

Поля объявляются через аннотации типов. Значение по умолчанию задаётся через присваивание. Для тонкой настройки полей применяется функция Field.

Пример

Давайте создадим простую модель пользователя и применим её в обработчике POST-запроса:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int @app.post('/user') def create_user(user: User): return {'name': user.name, 'age': user.age}

Отправим JSON на адрес /user:

{"name": "abcde", "age": 25}

Результат выполнения кода:

{"name": "abcde", "age": 25}

Пример

Давайте передадим строку вместо числа в поле age и посмотрим, как Pydantic выполнит приведение типа:

from pydantic import BaseModel class User(BaseModel): name: str age: int user = User(name='abcde', age='25') print(user.age)

Результат выполнения кода:

25

Пример

Давайте зададим значение по умолчанию и необязательное поле через Field:

from typing import Optional from pydantic import BaseModel, Field class Article(BaseModel): title: str views: int = Field(default=0) author: Optional[str] = None article = Article(title='hello') print(article)

Результат выполнения кода:

title='hello' views=0 author=None

Смотрите также

  • метод model_dump,
    который превращает модель в словарь
  • метод model_dump_json,
    который превращает модель в JSON-строку
  • метод model_validate,
    который валидирует словарь и создаёт модель
  • функция Field,
    которая настраивает поля модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить