在 FastAPI 中,[Pydantic](https://pydantic-docs.helpmanual.io/) 是一个用于数据验证和序列化的强大工具。Pydantic 模型用于定义输入和输出的数据结构,它们与 FastAPI 结合使用,使得请求和响应的数据验证和文档生成变得简单而直观。

以下是一个使用 Pydantic 模型的 FastAPI 示例:
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

# 定义 Pydantic 模型
class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

# 使用 Pydantic 模型作为请求体参数
@app.post("/items/")
async def create_item(item: Item):
    return item

# 使用 Pydantic 模型作为响应体
@app.get("/items/{item_id}")
async def read_item(item_id: int):
    fake_item = {"item_id": item_id, "name": "Foo", "description": "Some Item", "price": 42.0}
    return Item(**fake_item)

在上述示例中,Item 是一个 Pydantic 模型,它定义了输入数据的结构。在 create_item 函数中,item 参数的类型是 Item,FastAPI 会自动解析请求体中的 JSON 数据,并使用 Pydantic 模型进行验证。

同样,在 read_item 函数中,使用 Pydantic 模型 Item 作为响应的数据结构,FastAPI 将自动根据模型生成文档,并验证响应的结构。

Pydantic 模型支持许多功能,如字段类型、默认值、验证规则等,详细信息可以查阅 Pydantic 文档。在 FastAPI 中,Pydantic 模型与请求和响应的处理集成得非常好,使得开发 API 更加便捷和安全。


转载请注明出处:http://www.pingtaimeng.com/article/detail/13932/FastAPI