【问题标题】:'Request' object has no attribute 'get_json' Werkzeug'Request' 对象没有属性 'get_json' Werkzeug
【发布时间】:2021-01-15 19:36:07
【问题描述】:

我无法从我的请求中打印或读取 json 数据。 POST 请求是 application/json 并且发送的 json 是有效的。 知道为什么“get_json”不存在吗?

from werkzeug.wrappers import Request, Response
import json

@Request.application
def application(request):
    data = request.get_json(force=True)
    print(data)
    return Response('Data Received')

if __name__ == '__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost', 5000, application)

request.get_json 替换为request.get_data 会以字符串形式返回json (d'{\n"example": "here"\n}')

我已确认我的 Werkzeug 安装是最新的。

【问题讨论】:

    标签: python json post werkzeug


    【解决方案1】:

    我能够解决我自己的问题;

    request默认没有get_json,你需要继承它并自己添加。

    这是一个例子:

    from werkzeug.wrappers import BaseRequest, Response
    from werkzeug.wrappers.json import JSONMixin
    
    class Request(BaseRequest, JSONMixin):
        '''Allow get_json with Werkzeug'''
        pass
    
    @Request.application
    def application(request):
        data = request.get_json(force=True)
        print(data)
        return Response('Data Received')
    
    def __init__(self):
            if __name__ == '__main__':
                from werkzeug.serving import run_simple
                run_simple('localhost', 5000, application)
    

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 2011-12-14
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多