私はJinja2でマクロを広範囲に使用してきましたが、マクロは非常に乾燥しているようです。しかし、私を悩ませていることが1つあります。それは、マクロからグローバルなものにアクセスする方法です。どういうわけかマクロからネイティブにurl_for()にアクセスできれば、本当に素晴らしいでしょう。
7325 次
1 に答える
8
Jinja 環境で任意の callable を使用できるようにすることができます。
jinja_env = Environment(...)
jinja_env.globals['url_for'] = url_for
たとえば、シェルで次の出力 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 に答える