相关疑难解决方法(0)

带有pydantic模型的fastapi表单数据

我正在尝试从 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 '''<form method="post"> 
    <input type="text" name="no" value="1"/> 
    <input type="text" name="nm" value="abcd"/> 
    <input type="submit"/> 
    </form>'''


class SimpleModel(BaseModel):
    no: int
    nm: str = ""

@app.post("/form", response_model=SimpleModel)
def form_post(form_data: SimpleModel = Form(...)):
    return form_data
Run Code Online (Sandbox Code Playgroud)

我如何收到 http 状态422不可处理实体的错误

{"detail":[{"loc":["body","form_data"],"msg":"field required","type":"value_error.missing"}]}

等效的 curl 命令(由 firfox 生成)是

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

这里的请求正文包含 no=1&nm=abcd …

python pydantic fastapi

9
推荐指数
4
解决办法
2万
查看次数

如何创建可以接受 Form 或 JSON 正文的 FastAPI 端点?

我想在 FastAPI 中创建一个可能接收(多部分)Form数据或JSON正文的端点。有没有办法让这样的端点接受或者检测正在接收哪种类型的数据?

python json multipartform-data starlette fastapi

6
推荐指数
1
解决办法
6025
查看次数

标签 统计

fastapi ×2

python ×2

json ×1

multipartform-data ×1

pydantic ×1

starlette ×1