3

我正在尝试从不同的标签设置 werkzeug LocalProxy。

到目前为止,我能做的最好的是:

for tag in self.filters.iterkeys():
    c = "{}_context".format(tag)
    setattr(self, c, LocalProxy(lambda: getattr(_request_ctx_stack.top.g,
                                                tag,
                                                None)))

如果在 g(gx) 上设置了属性 x,则 my_instance.x 返回 gx

但我真正想要做的是格式化上面的 c 以返回本地代理而不挖掘 my_instance

x_context = LocalProxy(lambda: g.x)

而不是我现在可以做的:

my_instance.x_context = LocalProxy(lambda: g.x)

只有它来自我可能需要为 x_context 返回 gx、为 y_context 等返回 gy 的列表。

正在做:

c = LocalProxy(lambda: getattr(_request_ctx_stack.top.g, tag, None))

以上不起作用。

当我写出来时,它的声音现在更加令人费解,而且我现在还没有掌握它,所以让我知道需要澄清什么。

编辑:

对于好奇的人,这里是它来自哪里的上下文:

https://github.com/thrisp/flarf/blob/master/flask_flarf/flarf.py

4

0 回答 0