如何在 FastAPI 中将文件多文件上传字段设置为可选字段

How to set the file multiple file upload field as an Optional field in FastAPI

from typing import List

from fastapi import FastAPI, File, UploadFile
from fastapi.responses import HTMLResponse

app = FastAPI()


@app.post("/files/")
async def create_files(files: List[bytes] = File(...)):
    return {"file_sizes": [len(file) for file in files]}


@app.post("/uploadfiles/")
async def create_upload_files(files: List[UploadFile] = File(...)):
    return {"filenames": [file.filename for file in files]}

我需要将多文件上传字段作为可选字段 该文档包含上述代码,但没有详细说明如何将“FileUpload”字段设为可选字段。

您可以使用 None 而不是 ... (省略号) 来创建字段 Optional

这是一个 Optional 字段。

from typing import Optional

files: Optional[List[bytes]] = File(None)

这是必填字段。

files: List[bytes] = File(...)

您案例的工作示例。

from typing import List, Optional

from fastapi import FastAPI, File, UploadFile
from fastapi.responses import HTMLResponse

app = FastAPI()


@app.post("/files/")
async def create_files(files: Optional[List[bytes]] = File(None)):
    return {"file_sizes": [len(file) for file in files]}


@app.post("/uploadfiles/")
async def create_upload_files(files: Optional[List[UploadFile]] = File(None)):
    return {"filenames": [file.filename for file in files]}