如何在FastAPI中使用带有表单数据的Pydantic模型?

12 浏览
0 Comments

如何在FastAPI中使用带有表单数据的Pydantic模型?

我正在尝试使用HTML表单提交数据,并使用Pydantic模型进行验证。

使用以下代码:

from fastapi import FastAPI, Form
from pydantic import BaseModel
from starlette.responses import HTMLResponse
app = FastAPI()
@app.get("/form", response_class=HTMLResponse)
def form_get():
    return '''
''' class SimpleModel(BaseModel): no: int nm: str = "" @app.post("/form", response_model=SimpleModel) def form_post(form_data: SimpleModel = Form(...)): return form_data

然而,我得到了HTTP错误:"422 Unprocessable Entity"

{

"detail": [

{

"loc": [

"body",

"form_data"

],

"msg": "field required",

"type": "value_error.missing"

}

]

}

Firefox生成的等效curl命令如下:

curl 'http://localhost:8001/form' -H 'Content-Type: application/x-www-form-urlencoded' --data 'no=1&nm=abcd'

这里的请求体包含no=1&nm=abcd

我做错了什么?

0