首页>文档>FastAPI>fastapi中文手册:Form Data(表格数据)

fastapi中文手册:Form Data(表格数据)

fastapi中文手册:Form Data(表格数据)

FastAPI 是一个高性能 Web 框架,用于构建 API。

主要特性:

  • 快速:非常高的性能,与 NodeJS 和 Go 相当
  • 快速编码:将功能开发速度提高约 200% 至 300%
  • 更少的错误:减少约 40% 的人为错误
  • 直观:强大的编辑器支持,自动补全无处不在,调试时间更少
  • 简易:旨在易于使用和学习,减少阅读文档的时间。
  • 简短:减少代码重复。
  • 稳健:获取可用于生产环境的代码,具有自动交互式文档
  • 基于标准:基于并完全兼容 API 的开放标准 OpenAPI 和 JSON Schema 

一、Form字段

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

提示

想要使用forms,首先请安装 python-multipart.

`pip install python-multipart`.

二、导入Forn: Import Form

首先,从 fastapi中导入Form:

from fastapi import FastAPI, Form 

三、定义Form参数

创建Form参数,和之前创建 BodyQuery参数的方法一样:

from fastapi import FastAPI, Form

app = FastAPI()

@app.post("/login/")
async def login(*,
    username: str = Form(...),
    password: str = Form(...)
):
    return {"username": username}

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

规范要求这些字段必须准确命名为”用户名”和”密码”,并作为表单字段而不是`JSON发送。

使用Form可以声明与Body相同的元数据和验证(以及Query,Path,Cookie)。

说明

  • Form是一个类,直接继承自Body
  • 要声明表单主体,您需要明确地使用Form,因为没有它,参数将被解释为查询参数或主体(JSON)参数。

二、Form 字段

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

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

技术细节

  • 表单中的数据通常使用“媒体类型” application/x-www-form-urlencoded编码。
  • 但是当表单包含文件时,它将被编码为multipart/form-data。 您将在下一章中了解有关处理文件的信息。

如果您想了解有关这些编码和表单字段的更多信息,请转至 the MDN web docs for POST.

警告⚠️

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

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

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索