如何在Flask请求中设置属性?

如何在Flask请求中设置属性?,flask,request,attributes,add,Flask,Request,Attributes,Add,注意:这不是一个副本 案例:完全了解你将要做什么并不是正确的方式,但现在是12月29日,能够做出真正修复的人一周内都不会出现。在最近的更改之后,是一个页面还是多个页面?不再发布JSON,而是发布表单。通过将request.form转换为JSON并将其转换为request.JSON,您可能可以在一周内解决这个问题—如果它允许您这样做的话 我尝试的是: 如果不是request.json和request.form: setattrrequest、json、json.dumpsrequest.form

注意:这不是一个副本

案例:完全了解你将要做什么并不是正确的方式,但现在是12月29日,能够做出真正修复的人一周内都不会出现。在最近的更改之后,是一个页面还是多个页面?不再发布JSON,而是发布表单。通过将request.form转换为JSON并将其转换为request.JSON,您可能可以在一周内解决这个问题—如果它允许您这样做的话

我尝试的是:

如果不是request.json和request.form: setattrrequest、json、json.dumpsrequest.form 我收到投诉:

  ...
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "./routes.py", line 134, in api_file_id
    setattr(request, "json", json.dumps(request.form))
  File "/usr/lib/python3/dist-packages/werkzeug/local.py", line 364, in <lambda>
    __setattr__ = lambda x, n, v: setattr(x._get_current_object(), n, v)
AttributeError: can't set attribute
如果能够做到这一点,将使bubblegum修复程序变小,并且易于在route函数中定位。备选方案变得混乱

我缺乏必要的知识来理解为什么我会出现这个错误,也没有给我太多的工作-为什么不能设置属性

我是做错了什么,还是出于某种原因认为这是不可能的?

底层对象是不可变的,因此您不能修改请求。您可能需要创建一个新变量来保存json,这意味着您需要更新其他代码来引用您的新变量,而不是request.json,例如:


我没有意识到这种不变性——这解释了为什么他们希望在错误消息中包含这样的细节;无法在不可变对象上设置属性。。。。非常感谢!
if not request.json and request.form:
    myjson = json.dumps(request.form)