gpt4 book ai didi

Python:如何在 jinja2 中正确循环此编辑

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:53 24 4
gpt4 key购买 nike

不太确定如何循环它,我认为通过函数传递它可能是最好的,但我被告知如果可能的话尽量不要这样做。

这是我正在尝试做的事情(front.py):

class Front( handler.Handler ):

def get( self ):
query = b1data.b2data.all()

# Here is what I'm trying to print for each entry
for a2 in query:
# the dates are: 2013-10-05 03:00:00 and 2014-01-07 03:00:00
b = datetime.strptime(a2.date_airingdate, '%Y-%m-%d %H:%M:%S')
a = datetime.now()
totaldays = (a-b).days
allweeks = totaldays / 7 + 1

self.render("front.html", allweeks=allweeks, query=query)

这是我的 front.html

{% for a2 in query %}
<tr class="header">
<td>{{ a2.somename }}</td>
<td>{{ allweeks }}</td>
</tr>
{% 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 %}

另外,请注意,您应该在循环中放入尽可能少的内容。例如,为什么在循环中调用 datetime.now() - 相反,在循环之前调用一次并重用。

希望有帮助。

关于Python:如何在 jinja2 中正确循环此编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21398077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com