FastAPI(23)- 详解 Form,发送表单数据
前言
- form-data 表单格式的请求数据其实也是挺常见的
- FastAPI 通过 Form 来声明参数需要接收表单数据
安装 python-multipart
要用 Form,需要先安装这个库
pip install python-multipart
Form
Form 是继承自 Body,所以可以定义和 Body 相同的元数据以及额外的验证
简单的栗子
import uvicorn from fastapi import FastAPI, Form app = FastAPI() @app.post("/login/") async def login(username: str = Form(...), password: str = Form(...)): return {"username": username, "password": password} if __name__ == "__main__": uvicorn.run(app="10_Form:app", host="127.0.0.1", port=8080, reload=True, debug=True)
在 OAuth2 规范的一种使用方式(密码流)中,需要将用户名、密码作为表单字段发送,而不是 JSON【后面会详解 OAuth2】
重点
- 请求发送表单格式的数据,请求头通常会包含 Content-Type: application/x-www-form-urlencoded
- 如果需要发送包含文件的表单数据, 会变成 Content-Type: multipart/form-data
正确传参的请求结果
请求头
查看 Swagger API 文档
- 可以看到接口文档中,接口的 Content-type 默认也是 application/x-www-form-urlencoded
- 注意:在 Swagger 上无法测试上传文件,因为 Content-type 无法切换到 multipart/form-data ,如果需要测试,要用 FastAPI 提供的 File 哦
- File 详细教程
标签:
FastAPI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-09-25 Cypress系列(53)- as() 命令详解