我正在尝试从不同的标签设置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(g.x)上设置了属性x,my_instance.x将返回g.x
但我真正想做的是将上面的c格式化为返回本地代理,而不是通过my_instance挖掘
x_context = LocalProxy(lambda: g.x)
而不是我现在可以做的事情:
my_instance.x_context = LocalProxy(lambda: g.x)
仅来自我可能需要为x_context返回g.x的列表,g.y用于y_context等。
这样做的:
c = LocalProxy(lambda: getattr(_request_ctx_stack.top.g, tag, None))
以上不起作用。
现在,当我写出来时,它的声音更加复杂,而我现在还没有把握它,所以让我知道有什么澄清。
编辑:
对于好奇的人来说,这是来自的地方:
https://github.com/thrisp/flarf/blob/master/flask_flarf/flarf.py