1. 基础表单处理
1 | from fastapi import FastAPI, Form |
- 必须安装
python-multipart依赖:pip install python-multipart - 使用
Form()显式声明表单字段,否则参数会被识别为查询参数 - 支持与
Body相同的元数据和验证规则(如字段别名、示例等)
2. 数据验证机制
1 |
|
- 支持类型转换(如字符串转整型)和边界验证(
gt/lt) - 正则表达式验证(如密码复杂度规则)
- 自动返回422错误和验证失败详情
3. 模型化表单处理
1 | from pydantic import BaseModel, Field |
- FastAPI 0.115.0+ 支持使用Pydantic模型(需搭配
Depends) - 模型字段自动映射到表单参数,支持复杂嵌套结构
- 可通过
model_config = {"extra": "forbid"}禁止额外字段
4. 文件与表单混合处理
1 | from fastapi import File, UploadFile |
- 使用
multipart/form-data编码格式 UploadFile类型支持大文件流式传输- 禁止同时使用
Form和Body(HTTP协议限制)
5. 特殊场景处理
1 | from fastapi import Request |
- 通过
request.form()获取原始表单数据 - 使用
**kwargs接收未知字段(需谨慎处理安全性) - 支持将表单数据转换为字典格式
注意事项:
- 表单字段名需与HTML表单的
name属性一致 - 生产环境建议使用HTTPS传输敏感数据(如密码)
- 文档测试需手动设置
application/x-www-form-urlencoded格式