我正在尝试从不同的标签设置 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