В библиотеке Pydantic, которая используется для валидации данных в FastAPI, вы можете создавать модели с дефолтными значениями для полей.
Чтобы создать словарь (тип dict) с дефолтным значением None, вы можете использовать типовую поддержку Pydantic для словарей.
Вот пример создания схемы, которая содержит словарь с дефолтным значением None:
from typing import Dict from pydantic import BaseModel class MyModel(BaseModel): my_dict: Dict[str, None] = {}
В этом примере мы создаем модель MyModel
, в которой есть поле my_dict
типа Dict[str, None]
. Второй аргумент типа None
указывает на дефолтное значение, которое устанавливается для каждого ключа словаря. В данном случае, мы устанавливаем значение None
для каждого ключа, если значение не указано явно.
Теперь вы можете использовать модель MyModel
в вашем приложении FastAPI:
from fastapi import FastAPI from my_module import MyModel app = FastAPI() @app.post("/data") async def post_data(data: MyModel): return {"data": data}
В этом примере мы объявляем путь /data
с асинхронной функцией обработки post_data
. Аргумент data
имеет тип MyModel
, что гарантирует, что данные будут валидированы и содержать словарь с дефолтным значением None.
Таким образом, если вы будете отправлять запрос POST на /data
без указания значения для поля my_dict
, то валидатор Pydantic автоматически установит значение None для этого поля в объекте data
. Если вы явно указываете значение для поля my_dict
, то это значение будет установлено вместо дефолтного значения None.
Надеюсь, эта информация будет полезной! Если у вас есть еще вопросы, не стесняйтесь задавать их!