我是 Jinja 的新手,只是想评估它是否能满足我的需要。
假设我有一个元素列表,每个元素都包含一个键/值对字典。我希望 Jinja 迭代列表中每个元素的块,并使用块内容打印每个字典的键/值对。
(我在标题中说递归是因为我的实际实现使用递归。但迭代是相同的概念,所以为了简单起见,我在这里使用它)。
因此,我对此的天真尝试将是这样的(这或多或少是伪代码):
块.html:
{% extends base.html %}
{% block element %}
<do some fancy printing with the current dictionary here>
{% endblock %}
base.html:
{% for item in seq %}
<li>{% block element %}{% endblock %}</li>
{% endfor %}
.py 文件(基于 GoogleAppEngine Jinja 实现):
myDict = { 'seq': [{'keyA0': 'valueA0', 'keyA1': 'valueA1'},
{'keyB0': 'valueB0', 'keyB1': 'valueB1'}] }
template = JINJA_ENVIRONMENT.get_template('block.html')
self.response.write(template.render(myDict))
我不确定如何构造它来做我想做的事。我希望块的“实例”从列表中获得适当的字典来打印值,以输出如下内容:
Entry0:
keyA0: valueA0
keyA1: valueA1
Entry1:
keyB0: valueB0
keyB1: valueB1
但我不确定如何向每个块传递它需要的数据。Jinja 有可能吗?