Страницы

Поиск по вопросам

воскресенье, 30 июня 2019 г.

Как послать файл и JSON в одном POST-запросе используя тестовый клиент Flask-a?

Привет,
В англоязычной версии SO есть вопрос Using Python Requests to send file and JSON in single request. Мне нужно тоже самое, но только лишь с использованием тествого клиента от Flask. Под тестовым клиентом понимаю результат вызова test_client() от инстанса Flask-а.
Возможно ли это?
На всякий случай, тестовый клиент получаю так:
def create_app(configName='default'): result = Flask(__name__) result.config.from_object(config[configName])
# more lines
def setUp(self): self.app = create_app(configName='testing') self.app_ctx = self.app.app_context() self.app_ctx.push() db.create_all() self.client = self.app.test_client()


Ответ

Примерно так:
fp = StringIO('my file contents') metadata = {'key1': 'value1', 'key2': 'value2'} client.post( '/upload' data = { 'file': (fp, 'test.txt'), 'data': json.dumps(metadata), } )
Файл будет доступен как request.files['file'], а данные как request.form['data']

Комментариев нет:

Отправить комментарий