2012-10-21 2 views
6

jinja2에서이 작업을 수행 할 수있는 방법이 있습니까?jinja2 템플릿을 여러 번 렌더링 했습니까?

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

기본적으로 템플릿에 여러 번 통과 할 수 있기를 원합니다. 템플릿 엔진이 컨텍스트에없는 템플릿의 변수를 찾으면 아무것도 바꾸지 않고 템플릿 변수를 그대로 유지합니까? jinja2가 아니라면, 이것을 할 수있는 다른 파이썬 템플릿 라이브러리가 있습니까?

답변

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 
관련 문제