Jinja2中的动态模板使用

26 投票
1 回答
9663 浏览
提问于 2025-04-16 18:11

我有以下的情况:

有一个包含多个字典的 Python 列表,格式是 l = [a,b,c,...,n]。这个列表里的每个元素都是一个 Python 字典,长得像这样:

d = {}
d['type'] = 5
d['content'] = 'somestring'

现在我想把所有的字典放在一个主模板里。但是每个字典的内容需要用一个子模板来显示。用哪个模板来显示内容,应该根据字典里的类型变量来决定。

有没有什么建议可以用 Jinja2 来实现这个?(我是在 Flask 中使用它,如果这有帮助的话……)

谢谢!

1 个回答

55

如果有人需要的话:

{% for d in dicts %}
  {% set template = d.type + '.html' %} {% include template %}
{% endfor %}

那么在模板中,你可以这样访问内容:

{{ d.content }}

感谢来自freenode的#pocoo频道的donri!

撰写回答