14

jinja2でこれを行う方法はありますか?

template = Template("{{ var1 }}{{ var2 }}")
rendered1 = template.render(var1=5) # "5-{{ var2 }}"
rendered2 = Template(rendered1).render(var2=6) # "5-6"

基本的に、テンプレートで複数のパスを実行できるようにしたいです。テンプレートエンジンがコンテキストにない変数をテンプレートで見つけた場合、それを何も置き換えずに、テンプレート変数をそのまま保持しますか?jinja2でない場合、これを実行できる他のPythonテンプレートライブラリはありますか?

4

1 に答える 1

12

環境のパラメーターのUndefined Typeとして、失敗したルックアップを保持するDebugUndefinedを使用できます。undefinedTemplate

>>> from jinja2 import Template, DebugUndefined
>>> template = Template("{{ var1 }}-{{ var2 }}", undefined=DebugUndefined)
>>> rendered1 = template.render(var1=5) # "5-{{ var2 }}"
>>> print(rendered1)
5-{{ var2 }}
>>> rendered2 = Template(rendered1).render(var2=6) # "5-6"
>>> print(rendered2)
5-6
于 2012-10-21T08:16:34.153 に答える