1

我想对request.argsand使用可变字典request.formImmutableMultiDictWerkzeug 和 Flask为这些数据创建了一个。有没有办法让它可变?

4

1 回答 1

4

根据 Werkzeug 文档,您可以更新类的parameter_storage_class属性Request以使用您想要的类型。如果您还想对args和以外的数据执行相同的操作form,请更新dict_storage_class属性。文档说明:

... 可以使用可变结构,但不建议这样做。

不建议将此设置为可变,因为请求数据是来自客户端的任何内容。更改它将意味着它不再匹配客户端发送的内容。可能有更好的方法来传递自定义值,例如使用 Flaskbefore_requestg.

Flask 文档展示了如何修改和使用应用程序的子Request类。

from flask import Flask, Request
from werkzeug.datastructures import ImmutableOrderedMultiDict

class MyRequest(Request):
    parameter_storage_class = ImmutableOrderedMultiDict

class MyFlask(Flask):
    request_class = MyRequest ```
于 2012-06-19T04:33:32.703 回答