При создании шаблонов у меня обычно есть 3 отдельные части (заголовок, тело, нижний колонтитул), которые я объединяю для передачи одной строки на веб-сервер (в данном случае CherryPy).
Мой первый подход заключается в следующем:следует ...
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)
Однако это означает, что каждая часть создается в своей собственной среде -это может быть проблемой?Есть ли другие недостатки этого подхода?
Я выбрал трехэлементный подход, а не дочерний шаблонный, потому что я думаю, что он может быть более гибким (и более легким для понимания), но я могу ошибаться.Кто-нибудь хотел бы убедить меня, что использование блоков заголовка, тела и нижнего колонтитула может быть лучше?
Любой совет будет оценен.Алан