#python #python-requests #fastapi
Вопрос:
В документации FAST API приведенный ниже пример приведен в качестве ссылки на то, как передавать дополнительные параметры в запросе post при передаче файла.
https://fastapi.tiangolo.com/tutorial/request-forms-and-files/
from fastapi import FastAPI, File, Form, UploadFile
app = FastAPI()
@app.post("/files/")
async def create_file(
file: bytes = File(...), token: str = Form(...)
):
Когда я делаю запрос на публикацию, как показано ниже, я получаю:
requests.post(URL, files={'file': hdf5_file, 'token': 'teststring'})
422 Unprocessable Entity
{'detail': [{'loc': ['body', 'model_str'],
'msg': 'str type expected',
'type': 'type_error.str'}]}
Почему токен не распознается как строка? Из документации неясно, как должен выглядеть запрос post, который смешивает формы с файлами.
Ответ №1:
Для requests
использования параметра files
для загрузки файлов и data
для отправки дополнительных данных формы. В этом случае все будет отправлено в виде разных частей с типом содержимого multipart/form-data
:
requests.post(URL, files={'file': hdf5_file}, data={'token': 'teststring'})