【发布时间】:2010-10-06 20:24:57
【问题描述】:
我正在使用 Jinja2,我正在尝试创建几个可以协同工作的标签,如果我有一个看起来像这样的模板:
{{ my_summary() }}
... arbitrary HTML ...
{{ my_values('Tom', 'Dick', 'Harry') }}
... arbitrary HTML ...
{{ my_values('Fred', 'Barney') }}
我最终会得到以下结果:
This page includes information about <b>Tom</b>, <b>Dick</b>, <b>Harry</b>, <b>Fred</b>, and <b>Barney</b>.
... arbitrary HTML ...
<h1>Tom, Dick, and Harry</h1>
... arbitrary HTML ...
<h1>Fred and Barney</h1>
换句话说,页面开头的 my_summary() 包含页面稍后提供的信息。它应该足够聪明,可以考虑出现在include 和import 语句中的表达式。
最好的方法是什么?
【问题讨论】:
-
@Chris B. 不清楚的一件事是值列表来自哪里?你知道模板渲染之前的子列表吗?如果您当时不知道它们,这似乎表明您的模板正在承担控制器的责任(就 MVC 而言,松散地说)。
-
我基本上是在使用包含的模板来绘制小部件,这些小部件需要某些 css 和 js 文件才能运行。 css 和 js 进入基本模板,而稍后包含的模板呈现小部件。所以没有办法先验地知道以后需要哪些库。
标签: python templating jinja2