request.form.getlist выдает пустой список - PullRequest
0 голосов
/ 04 июля 2018

Мой вопрос похож на request.form.getlist не возвращает никаких записей , за исключением того, что я отправляю запросы в Python. Упрощенные коды написаны ниже:

app.py

from flask import Flask, request, jsonify
app = Flask(__name__)
app.config["DEBUG"] = True

@app.route("/h2ocr", methods=["POST"])
def recognize():  
    report_set = jsonify({"report_set": request.form.getlist("images")})
    return report_set

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=7000)

test_app.py

import requests
import json

response = requests.post(
    url="http://localhost:7000/h2ocr",
    data=json.dumps({"images": ["a", "b", "c", "d", "e"]})
)
print(json.loads(response.content), response.status_code)

python test_app.py дает мне {"report_set": []} и код состояния 200. Как я могу получить {"report_set": ["a", "b", "c", "d", "e"]} от response.content? (Странно, это работало вчера ...: /)


Изменения после пометки как дублированные:

Согласно Как получить POSTed json во Flask? и Публиковать JSON с использованием запросов Python , можно использовать параметр json для передачи содержимого json со словарем Python. Однако я уже пробовал это раньше, просто раньше не писал:

import requests
import json

response = requests.post(
    url="http://localhost:7000/h2ocr",
    data=json.dumps({"images": ["a", "b", "c", "d", "e"]}),
    json={"images": ["a", "b", "c", "d", "e"]},
    headers={"Content-Type": "application/json"}
)
print(json.loads(response.content), response.status_code)

С любым одним, любыми двумя или даже всеми параметрами data, json, headers, указанными в requests.post, я все еще получаю {"report_set": []} от response.content.

Кроме того, из ответа Как получить данные, полученные в запросе Flask , я считаю, что использование request.form.getlist("images") является правильным. Для чего request.form включает «пары ключ / значение в теле, из HTML-формы публикации», и я отправил запрос на публикацию с парой ключ / значение.

Извините, но я не получаю помощи от предложенных дубликатов.

...