您可以使用文件和表单同时定义File和Form字段。
信息 为了接收长传的文件或者表单数据,你首先需要通过
pip install python-mulipart来安装python-multipart
导入File和Form
from fastapi import FastAPI, File, Form, UploadFile
定义File和Form参数
以与正文或查询相同的方式创建文件和表单参数:
from fastapi import FastAPI, File, Form, UploadFileapp = FastAPI()@app.post("/files/")async def create_file(file: bytes = File(...), fileb: UploadFile = File(...), token: str = Form(...)):return {"file_size": len(file),"token": token,"fileb_content_type": fileb.content_type,}
文件和表单字段将作为表单数据上载,您将收到文件和表单字段。
您可以将某些文件声明为bytes,将某些文件声明为UploadFile。
警告 您可以在路径操作中声明多个
File和Form参数,但是也不能声明希望以JSON形式接收的Body字段,因为请求将使用multipart/form-data而不是application/json进行编码。 这不是FastAPI的限制,它是HTTP协议的一部分。
概括
当您需要在同一请求中接收数据和文件时,可以同时使用“File”和Form”。
