Мой вопрос похож на 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-формы публикации», и я отправил запрос на публикацию с парой ключ / значение.
Извините, но я не получаю помощи от предложенных дубликатов.