Тип confloat
Тип confloat применяется внутри моделей Pydantic
для описания поля, которое должно быть числом
с плавающей точкой и одновременно удовлетворять
набору ограничений. Первым параметром передаётся
нижняя граница значения, вторым - верхняя граница.
Если значение выходит за пределы диапазона
или нарушает кратность, Pydantic выбрасывает
ошибку валидации.
Основные параметры: gt - строго больше,
ge - больше или равно,
lt - строго меньше,
le - меньше или равно,
multiple_of - кратность числа,
strict - запрет приведения типов.
Синтаксис
from pydantic import confloat
field: confloat(gt=None, ge=None, lt=None, le=None, multiple_of=None, strict=None)
Пример
Давайте создадим модель с полем, которое принимает число от нуля до ста:
from fastapi import FastAPI
from pydantic import BaseModel, confloat
app = FastAPI()
class Item(BaseModel):
price: confloat(ge=0, le=100)
@app.post('/item')
def create_item(item: Item):
return {'price': item.price}
Результат выполнения кода для тела {"price": 49.99}:
{"price": 49.99}
Пример
Давайте добавим ограничение на кратность числа:
from fastapi import FastAPI
from pydantic import BaseModel, confloat
app = FastAPI()
class Payment(BaseModel):
amount: confloat(gt=0, multiple_of=0.5)
@app.post('/pay')
def pay(payment: Payment):
return {'amount': payment.amount}
Результат выполнения кода для тела {"amount": 12.5}:
{"amount": 12.5}
Если передать значение 12.3, FastAPI вернёт
ошибку валидации, так как число не кратно 0.5.