Запрос приложения Flask.get_json() возвращает (многоточие, многоточие) вместо json

#python #flask #postman

#питон #колба #почтальон

Вопрос:

Я создаю простой API-интерфейс Flask и тестирую почтовый запрос от почтальона, вот так {"name": "Frosty"} . Это мой класс, который обрабатывает запросы к конечной точке, куда отправляется запрос POST:

 from http import HTTPStatus from flask.views import MethodView from flask import Blueprint from injector import singleton, inject from flask import jsonify, abort, request     @singleton class PetsController(MethodView):  @inject  def __init__(self) -gt; None:  super().__init__()  self.pets = [  {"id": 1, "name": "Snoopy"},  {"id": 2, "name": "Furball"},  {"id": 3, "name": "Alaska"},  ]  def configure(self):  self.pets_view = Blueprint("pets_view", __name__)  self.pets_view.add_url_rule("/pets/", view_func=PetsController.as_view("pets"))  def get(self):  return jsonify({"pets": self.pets})  def post(self):  data = request.get_json()  if not data or not "name" in data:  return jsonify(  message=f"Data missing from POST request {data}",  status=HTTPStatus.BAD_REQUEST.value,  )   new_pet = {"id": len(self.pets)   1, "name": data["name"]}  self.pets.append(new_pet)  return jsonify(  message=f"new pet added: {new_pet}",  status=HTTPStatus.CREATED.value,  )  

Я получаю неверный ответ на запрос, потому request.get_json() request.json что оба объявления возвращают этот кортеж (Ellipsis, Ellipsis) .

Есть идеи, почему?

Ответ №1:

Хорошо, похоже, это был сбой почтальона, хотя я определил Headers Content-Type: application/json , что он не отправлял эту информацию.

Я удалил и запустил новый POST запрос, сначала вручную добавил заголовок, а затем добавил raw данные тела, выбрал тип JSON , и это сработало.

Ответ №2:

Попробуй это. Это, несомненно, сработает; это сработало для меня.

 request.get_json(force=True, silent=True, cache=False)  

P.S.: Только настройка cache=false также сработала для меня.