Как отправить структуру данных Starlette FormData в конечную точку FastAPI через библиотеку запросов PythonPython

Программы на Python
Ответить
Anonymous
 Как отправить структуру данных Starlette FormData в конечную точку FastAPI через библиотеку запросов Python

Сообщение Anonymous »

Моя системная архитектура в настоящее время отправляет большой объект данных формы из внешнего интерфейса в серверный, причем оба они размещены на локальном хосте на разных портах. Данные формы принимаются на сервер через библиотеку 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. Вместо получения соответствующей структуры данных UploadFile старлетки я получаю строку имени класса, как показано в этом сообщении об ошибке:

Код: Выделить всё

FormData([('avatarFile', ''), ('avatarFileType', 'jpeg'), ('background', 'From Image'), ('voice', 'en-US-Wavenet-B'), ('transcriptKind', 'text'), ('translateToLanguage', 'No translation'), ('transcriptText', 'do')])
Как мне решить эту проблему?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»