1 回答

TA貢獻(xiàn)1719條經(jīng)驗 獲得超6個贊
如果您正在接收 JSON 數(shù)據(jù),
application/json
請使用普通的 Pydantic 模型。這將是與 API 通信的最常見方式。
如果您收到原始文件(例如圖片或 PDF 文件)并將其存儲在服務(wù)器中,則使用
UploadFile
,它將作為表單數(shù)據(jù) (?multipart/form-data
) 發(fā)送。如果您需要接收某種類型的非 JSON 結(jié)構(gòu)化內(nèi)容,但希望以某種方式進(jìn)行驗證(例如 Excel 文件),您仍然需要使用上傳它并在代碼中執(zhí)行所有必要的驗證
UploadFile
。您可以在自己的代碼中使用 Pydantic 進(jìn)行驗證,但在這種情況下 FastAPI 無法為您執(zhí)行此操作。
因此,就您而言,路由器應(yīng)該是,
from fastapi import FastAPI, File, UploadFile, Form
app = FastAPI()
@app.post("/predict")
async def predict(
? ? ? ? industry: str = Form(...),
? ? ? ? file: UploadFile = File(...)
):
? ? # rest of your logic
? ? return {"industry": industry, "filename": file.filename}
添加回答
舉報