FastAPI 学习之路(一)
FastAPI 学习之路(二)
FastAPI 学习之路(三)
FastAPI 学习之路(四)使用pydantic模型做请求体
FastAPI 学习之路(五)
FastAPI 学习之路(六)
FastAPI 学习之路(七)
FastAPI 学习之路(八)
FastAPI 学习之路(九)
FastAPI 学习之路(十)
FastAPI 学习之路(十一)
FastAPI 学习之路(十二)额外数据类型
FastAPI 学习之路(十三)Cookie 参数,Header参数
FastAPI 学习之路(十四)响应模型
FastAPI 学习之路(十五)响应状态码
FastAPI 学习之路(十六)Form表单
FastAPI 学习之路(十七)上传文件
前言
我们之前分享的是是上传文件,这次我们看下表单和文件组合使用。

正文
我们首先要安装表单或者文件处理的依赖
pip install python-multipart我们去实现下上传和form表单的组合使用。
from fastapi import FastAPI, File, Form, UploadFile
app = FastAPI()
@app.post("/files/")
async def create_file(
file: bytes = File(...), one: UploadFile = File(...),
token: str = Form(...)
):
return {
"filesize": len(file),
"token": token,
"one_content_type": one.content_type,
}我们去看下接口请求试试。

声明文件可以使用 bytes 或 UploadFile。可在一个路径操作中声明多个 File 与 Form 参数,但不能同时声明要接收 JSON 的 Body 字段。因为此时请求体的编码为 multipart/form-data
当然我们也可以上传多个文件,实现也很简单。代码如下
from fastapi import FastAPI, File, Form, UploadFile
from typing import List
app = FastAPI()
@app.post("/files/")
async def create_file(
file: bytes = File(...), one: List[UploadFile] = File(...),
token: str = Form(...)
):
return {
"filesize": len(file),
"token": token,
"one_content_type": [file.content_type for file in one],
}我们可以部署重启下。然后请求下


多个文件上传也是可以的。
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信:952943386。2021,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~