2012-10-21 6 views
6

क्या jinja2 के साथ ऐसा करने का कोई तरीका है?जिंज 2 टेम्पलेट्स के एकाधिक प्रस्तुतकर्ता?

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

मूल रूप से, मैं टेम्पलेट पर एकाधिक पास करने में सक्षम होना चाहता हूं। जब टेम्पलेट इंजन को उस टेम्पलेट में एक चर मिलता है जो संदर्भ में नहीं है, इसे किसी भी चीज़ के साथ बदलने की बजाय, टेम्पलेट चर को बरकरार रखें? यदि जिंजा 2 नहीं है, तो क्या कोई अन्य पायथन टेम्पलेट लाइब्रेरी है जो यह कर सकती है?

उत्तर

5

आप Template पर्यावरण के undefined पैरामीटर के लिए DebugUndefined, अपने Undefined Type के रूप में जो विफल रहा लुकअप रहता है, का उपयोग कर सकते हैं:

>>> 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 
संबंधित मुद्दे