【发布时间】:2014-01-14 19:50:39
【问题描述】:
我想用 jinja2 编写我自己的静态页面生成器。我想在特定的块中以编程方式呈现一些东西。我试过这个:
import jinja2
a = "adam"
b = "bob"
template = jinja2.Template(u"{{ A }} {% block b %}{% endblock %}")
html = template.render({'A': a, 'B': b})
print(html)
但返回以下输出:adam。如何在 b 块中呈现一些文本和/或变量(例如变量 b)。
【问题讨论】:
-
感谢您提供简洁的代码示例。但是您能否更具体一点:您希望输出为
adam,还是您得到adam但期待其他结果? -
我意识到我的问题是“如何在特定块中渲染某些东西”,我正在更新问题。
-
我有点困惑你为什么要这样做。为什么不直接使用
{{ B }}?当您需要使用您未使用的子模板的值填充块时,通常会使用您提供的块。 -
老实说,我试图模仿鹈鹕的行为,但实际上最好的解决方案不是自己搜索更新块,而是在其中插入一个 {{ ... }}。