2012-10-21 38 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

您可以使用DebugUndefined,這使出現故障的查找,如您Undefined Typeundefined參數Template環境:

>>> 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