Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何在jinja2中正确循环此编辑_Python_Loops_Datetime_Data Structures_Jinja2 - Fatal编程技术网

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

Python:如何在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 %} {%用于查询%

我真的不知道如何循环,我认为通过函数传递它可能是最好的,但有人告诉我,如果可能的话,尽量不要这样做

下面是我要做的(front.py):

这是我的front.html

{% 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 %}