Py学习  »  Python

如何通过python请求库将Starlette FormData数据结构发送到FastAPI端点

Kaiwen Looi • 3 年前 • 1476 次点击  

我的系统架构当前将一个表单数据blob从前端发送到后端,这两个表单数据blob都托管在不同端口的localhost上。表单数据通过FastAPI库在后端接收,如图所示。

@app.post('/avatar/request')
async def get_avatar_request(request: Request, Authorize: AuthJWT = Depends()):
    form = await request.form()
    return run_function_in_jwt_wrapper(get_avatar_output, form, Authorize, False)

目前,我正在尝试使用请求库将未修改的表单数据从后端转发到另一个FASTApi端点,如下所示:

response = requests.post(models_config["avatar_api"], data = form_data, headers = {"response-type": "blob"})

虽然目标端点确实接收表单数据,但它似乎没有正确解析UploadFile组件。我没有得到相应的Starlete UploadFile数据结构,而是收到了类名的字符串,如下面的错误消息所示:

FormData([('avatarFile', '<starlette.datastructures.UploadFile object at 0x7f8d25468550>'), ('avatarFileType', 'jpeg'), ('background', 'From Image'), ('voice', 'en-US-Wavenet-B'), ('transcriptKind', 'text'), ('translateToLanguage', 'No translation'), ('transcriptText', 'do')])

我该如何处理这个问题?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130500
 
1476 次点击  
文章 [ 1 ]  |  最新文章 3 年前