Python:如何在jinja2中正确循环此编辑
我真的不知道如何循环,我认为通过函数传递它可能是最好的,但有人告诉我,如果可能的话,尽量不要这样做 下面是我要做的(front.py): 这是我的front.htmlPython:如何在jinja2中正确循环此编辑,python,loops,datetime,data-structures,jinja2,Python,Loops,Datetime,Data Structures,Jinja2,我真的不知道如何循环,我认为通过函数传递它可能是最好的,但有人告诉我,如果可能的话,尽量不要这样做 下面是我要做的(front.py): 这是我的front.html {% for a2 in query %} <tr class="header"> <td>{{ a2.somename }}</td> <td>{{ allweeks }}</td> </tr> {% endfor %} {%用于查询%
{% for a2 in query %}
<tr class="header">
<td>{{ a2.somename }}</td>
<td>{{ allweeks }}</td>
</tr>
{% endfor %}
{%用于查询%中的a2}
{{a2.somename}
{{allweeks}
{%endfor%}
这只是为1(第一个)条目打印,我如何为每个条目获得它。我将所有逻辑都留在处理程序中,构建一个字典列表并将其传递到模板中:
class Front(handler.Handler):
def get(self):
data = []
now = datetime.now()
for item in b1data.b2data.all():
airingdate = datetime.strptime(item.date_airingdate,
'%Y-%m-%d %H:%M:%S')
data.append({'allweeks': (now - airingdate).days / 7 + 1,
'somename': item.somename})
self.render("front.html", data=data)
然后,在模板中显示数据非常简单:
{% for item in data %}
<tr class="header">
<td>{{ item.somename }}</td>
<td>{{ item.allweeks }}</td>
</tr>
{% endfor %}
{%用于数据%中的项]
{{item.somename}}
{{item.allweeks}
{%endfor%}
另外,请注意,您应该尽可能减少循环中的内容。例如,为什么要在循环中调用datetime.now()
——相反,在循环之前调用一次并重用它
希望这能有所帮助。我花了一点时间才让它与我的其他代码一起工作(我这边的代码一团糟),但它工作得很好!会用这种方式做很多事情谢谢!
{% for item in data %}
<tr class="header">
<td>{{ item.somename }}</td>
<td>{{ item.allweeks }}</td>
</tr>
{% endfor %}