2012-10-21 16 views
6

jinja2でこれを行う方法はありますか?複数のjinja2テンプレートのレンダリング?

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

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

答えて

5

あなたはTemplate環境のundefinedパラメータのためにあなたのUndefined Typeとして失敗した検索を続けるDebugUndefinedを、使用することができます。

>>> 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 
関連する問題