使用 Pydantic 模型的 FastAPI 查询参数

FastAPI query parameter using Pydantic model

我有一个 Pydantic 模型如下

class Student(BaseModel):
    name:str
    age:int

通过此设置,我希望获得如下 OpenAPI 模式,

那么,如何使用 Pydantic 模型在 FastAPI 中获取 from 查询参数?

你可以这样做,


from fastapi import FastAPI, <b>Depends</b>

from pydantic import BaseModel

app = FastAPI()


class Student(BaseModel):
    name: str
    age: int


@app.get("/")
def read_root(<b>student: Student = Depends()</b>):
    return {"name": student.name, "age": student.age}

此外,请注意查询参数通常是“可选”字段,如果您希望将它们设为可选,请使用Optional 类型提示为,

from fastapi import FastAPI, Depends
<b>from typing import Optional</b>
from pydantic import BaseModel

app = FastAPI()


class Student(BaseModel):
    name: str
    age: <b>Optional[int]</b>


@app.get("/")
def read_root(student: Student = Depends()):
    return {"name": student.name, "age": student.age}