FastAPI Post请求怎么获取参数

FastAPI接收GET请求的参数是非常简单的,但是POST却不是这样。

如果按GET的写法,比如

@app.post("/minus")
def minus(x: int, y: int):
    result = x - y
    return result

传参时就得这么写http://domain.com/minus?x=1&y=2,看着跟GET没啥区别。而如果通过表单去传参,这种写法是获取不到的,会报错缺少参数。简单的参数这么传没问题,但是如果传的是url,参数中本身又包含多个参数,这么写就不行了。

FastAPI接收POST请求的参数推使用表单传数据,首先需要安装依赖:

pip3 install python-multipart

然后在头部引入Form

from fastapi import FastAPI, Form

app = FastAPI()

最后定义POST请求:

@app.post("/minus/")
def fetch_sync(x: int = Form(), y: int = Form()):
    result = x -y
    return result

如果注意的是在提交表单时 header中的content-type要设置为application/x-www-form-urlencoded,不然还是获取不到参数。

Leave a Comment

豫ICP备19001387号-1