如何在FastAPI中使用带有表单数据的Pydantic模型?
如何在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
。
我做错了什么?