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

Функция Field

Функция Field применяется внутри Pydantic-модели и позволяет задать параметры конкретного поля. Первым параметром передаётся значение по умолчанию, далее - именованные параметры вроде default, alias, title, description, gt, ge, lt, le, min_length, max_length, pattern и другие. Функция возвращает объект FieldInfo, который Pydantic использует при валидации.

Синтаксис

from pydantic import BaseModel, Field class Model(BaseModel): field: type = Field(default, *, alias=None, title=None, description=None, gt=None, ge=None, lt=None, le=None, min_length=None, max_length=None, pattern=None)

Пример

Давайте зададим значение по умолчанию и описание для поля:

from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class User(BaseModel): name: str = Field(default='abcde', description='user name') age: int = Field(default=18, ge=0, le=120) @app.post('/user/') def create_user(user: User): return user

Результат выполнения запроса с пустым телом:

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

Пример

Давайте зададим псевдоним поля через параметр alias:

<+python+> from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class Article(BaseModel): title: str = Field(alias='article_title') body: str = Field(min_length=1, max_length=1000) @app.post('/article/') def create_article(article: Article): return article <-python+>

Результат выполнения запроса с телом {"article_title": "hello", "body": "abcde"}:

{"title": "hello", "body": "abcde"}

Пример

Давайте ограничим числовое поле через параметры gt и lt:

from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class Product(BaseModel): price: float = Field(gt=0, lt=10000) quantity: int = Field(default=1, ge=1) @app.post('/product/') def create_product(product: Product): return product

Результат выполнения запроса с телом {"price": 99.9, "quantity": 3}:

{"price": 99.9, "quantity": 3}

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

  • класс BaseModel,
    который является основой для создания моделей
  • функция field_validator,
    которая задаёт валидатор для отдельного поля
  • атрибут model_fields,
    который хранит информацию о полях модели
  • функция conint,
    которая задаёт ограничения для целочисленного типа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить