【问题标题】:Flask app request.get_json() return (Ellipsis, Ellipsis) instead of jsonFlask app request.get_json() 返回 (Ellipsis, Ellipsis) 而不是 json
【发布时间】:2022-01-11 06:51:19
【问题描述】:

我正在构建一个简单的 Flask API,我正在测试来自 Postman 的发布请求, 像这样{"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) -> 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)

有什么想法吗?

【问题讨论】:

    标签: python flask postman


    【解决方案1】:

    好吧,这似乎是一个邮递员故障,尽管我在Headers 中定义了Content-Type: application/json,但它并没有发送该信息。

    我删除并启动了一个新的POST 请求,首先手动添加了标头,然后添加了raw 正文数据,选择了JSON 类型,它工作了。

    【讨论】:

      【解决方案2】:

      试试这个。它肯定会起作用;它对我有用。

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

      P.S.:只有设置 cache=false 也对我有用。

      【讨论】:

        猜你喜欢
        • 2019-05-03
        • 2013-08-30
        • 2013-10-25
        • 2016-12-21
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        • 2014-12-30
        • 2010-10-20
        相关资源
        最近更新 更多