我一直在 Jinja2 中广泛使用宏,发现它们非常干燥;但有一件事困扰着我:如何从宏访问全局内容?如果我能以某种方式从宏本地访问 url_for() 那就太好了。
问问题
7325 次
1 回答
8
您可以在 Jinja 环境中使任何可调用对象可用:
jinja_env = Environment(...)
jinja_env.globals['url_for'] = url_for
例如,在 shell 中输出 u'foobar':
from jinja2 import Environment
env = Environment()
env.globals['foo'] = lambda: "foobar"
env.from_string('{% macro bar() %}{{ foo() }}{% endmacro %}{{ bar() }}').render()
于 2011-02-17T22:17:27.490 回答