4
創建模板時,我通常有3個獨立的部分(標題,正文,頁腳),我將這些字符串傳遞給Web服務器(本例中爲CherryPy)。Jinja2多部分模板問題
我的第一種方法是如下...
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader(''))
tmpl = env.get_template('Body.html')
page_body = tmpl.render()
tmpl = env.get_template('Header.html')
page_header = tmpl.render()
tmpl = env.get_template('Footer.html')
page_footer = tmpl.render()
page_code = page_header + page_body + page_footer
但這包含重複的代碼,所以我的下一個方法是...
def render_template(html_file):
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader(''))
tmpl = env.get_template(html_file)
return tmpl.render()
page_header = render_template('Header.html')
page_body = render_template('Body.html')
page_footer = render_template('Footer.html)
但是,這意味着每個零件創建在自己的環境中 - 這可能是一個問題嗎?這種方法還有其他缺點嗎?
我已經選擇了3部分的子模板方法,因爲我認爲它可能更靈活(也更容易遵循),但我可能是錯的。任何人都想說服我,使用頁眉,頁腳和頁腳塊可能會更好?
任何意見,將不勝感激。 Alan
這很可能是答案 - 前段時間我讀了'include',但忽略了它作爲解決我的問題的方法。非常感謝。 – 2010-06-16 12:10:46