好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

FastAPI基础之 Form表单数据

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

  信息

  要使用表格,请先安装python-multipart。

  例如pip install python-multipart。

  1、导入 Form

  Form从导入fastapi:

  from fastapi import FastAPI, Form

  app = FastAPI()

  @app.post("/login/")

  async def login(username: str = Form(...), password: str = Form(...)):

  return {"username": username}

  2、定义Form参数

  创建表单参数的方式与您Body或相同Query:

  from fastapi import FastAPI, Form

  app = FastAPI()

  @app.post("/login/")

  async def login(username: str = Form(...), password: str = Form(...)):

  return {"username": username}

  例如,以一种可以使用OAuth2规范的方式(称为“密码流”),需要发送username和password作为表单字段。

  该规范要求的领域,以准确地命名username,并password和发送表单域,而不是JSON。

  有了Form你可以声明相同的元数据和验证与Body(和Query,Path,Cookie)。

  信息大连妇科医院哪个好 http://xmobile.bhbyby.com/

  Form是直接从继承的类Body。

  声明

  要声明表单主体,您需要Form显式使用,因为没有它,参数将被解释为查询参数或主体(JSON)参数。

  3、关于“表单域”

  HTML表单()将数据发送到服务器的方式通常对该数据使用“特殊”编码,这与JSON不同。

  FastAPI将确保从正确的位置而不是JSON读取数据。

  技术细节

  来自表单的数据通常使用“媒体类型”进行编码application/x-www-form-urlencoded。

  但是,当表单包含文件时,它将被编码为multipart/form-data。

  如果您想了解有关这些编码和表单字段的更多信息,请访问MDN Web文档POST。

  警告

  您可以Form在路径操作中声明多个参数,但也不能声明Body希望以JSON形式接收的字段,因为请求将使用application/x-www-form-urlencoded代替编码主体application/json。

  这不是FastAPI的限制,它是HTTP协议的一部分。

查看更多关于FastAPI基础之 Form表单数据的详细内容...

  阅读:55次