gpt4 book ai didi

python - 使用 JSON 数据上传文件时 FastAPI 多部分/表单数据错误

转载 作者:行者123 更新时间:2023-12-05 03:38:38 25 4
gpt4 key购买 nike

我的 Pydantic 模型看起来像这样:

class Banner:
title: str
text: str

我的路线是这样的:

@router.post('', status_code=201)
async def create_banner(
banner: Banner,
photo: UploadFile = File(...) # multipart/form-data

):
return await Banners.create(banner.dict())

但是 FastAPI 返回以下错误:

enter image description here

最佳答案

根据FastAPI docs :

You can declare multiple File and Form parameters in a path operation,but you can't also declare Body fields that you expect to receive asJSON, as the request will have the body encoded usingmultipart/form-data instead of application/json.

This is not a limitation of FastAPI, it's part of the HTTP protocol.

并且在传递对象时,FastAPI 会尝试将其视为正文规范,而不是表单字段。这意味着,您必须将 banner 参数显式定义为表单字段:

@router.post('', status_code=201)
async def create_banner(
banner: Banner = Form(...),
photo: UploadFile = File(...) # multipart/form-data

):
return await Banners.create(banner.dict())

还要确保您的 Banner 对象是有效的 pydantic 模型,因为 FastAPI 无法在此上下文中正确识别裸对象。

关于python - 使用 JSON 数据上传文件时 FastAPI 多部分/表单数据错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68884287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com