Страницы

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

суббота, 11 апреля 2020 г.

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

#python #flask

                    
Привет, 

В англоязычной версии 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()

    


Ответы

Ответ 1



Примерно так: 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'].

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

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