当您需要接收表单字段而不是JSON时,可以使用Form。

信息 要使用表单,请先安装python-multipart。 例如。 pip install python-multipart

导入Form

  1. from fastapi import FastAPI, Form

定义Form参数

以与“正文”或“查询”相同的方式创建表单参数:

  1. from fastapi import FastAPI, Form
  2. app = FastAPI()
  3. @app.post("/login/")
  4. async def login(*, username: str = Form(...), password: str = Form(...)):
  5. return {"username": username}

例如,以一种可以使用OAuth2规范的方式(称为“密码流”),需要发送usernamepassword作为表单字段。
规范要求这些字段必须准确命名为usernamepassword,并作为表单字段(而不是JSON)发送。
使用Form,您可以声明与Body(以及Query,Path,Cookie)相同的元数据和验证。

信息 Form是直接从Body继承的类。

关于 “Form Fields”

HTML表单(<form></form>)将数据发送到服务器的方式通常对该数据使用“特殊”编码,这与JSON不同。
FastAPI将确保从正确的位置而不是JSON读取数据。