Python 如何在Django模板中执行forloop?
我知道如何通过forloop从列表中获取对象,但这里我要说的是forloop,目的是重复一定次数的内容。就像我在PHP中所做的那样:Python 如何在Django模板中执行forloop?,python,django,Python,Django,我知道如何通过forloop从列表中获取对象,但这里我要说的是forloop,目的是重复一定次数的内容。就像我在PHP中所做的那样: for (i=0; i < 10; i++) { hello <br /> } (i=0;i
for (i=0; i < 10; i++) {
hello <br />
}
(i=0;i<10;i++)的{
你好
}
这将输出hello 10次。那么如何在django模板语言中实现这一点呢?django模板语言有For循环。见: ……您可能会注意到,对于您所追求的那种“重复”功能,没有清晰的镜头。例如,您可以在视图中定义一个int(在您的例子中是i),并将其范围传递到模板上下文中,然后迭代该int的范围(当然,在Python中,int对象本身是不可iterable的) 然而,更为“蟒蛇式”的方法是明确的:问问自己,“为什么我要重复十次?”这页上显示的是携带椰子的勇敢燕子的数量吗?如果是这样,不要迭代数字10,而是直接迭代椰子对象列表,并在forloop中执行表示逻辑
{% for coconut in coconuts %}
hello, {{forloop.counter}} {# Something useful about the coconut goes here. #}
{% endfor %}
假设有十个椰子,这将产生与您的示例相同的结果。然而,正如我在评论中指出的那样,一旦进入循环,您肯定可以对couch对象做一些更有用的事情
如果您真的、绝对地觉得需要循环一个静态范围,而不需要从业务逻辑传入,那么您可能会发现这个片段很有用:
我再次提醒您,要确保您正在做您真正想做的事情,而不仅仅是在知识管理的深层次裂缝上进行加固。您可以使用a轻松做到这一点:
from django.template import Library
register = Library()
@register.filter
def range(value):
return xrange(value)
然后在模板中:
{% for i in 10|range %}
hello <br/>
{% endfor %}
{i在10|范围%内的百分比}
你好
{%endfor%}
这可以通过实现自己的模板标记来重复某些块来实现。请参阅
这样,您可以通过以下方式使用它:
{% repeat 3 %}
<div>html to repeat</div>
{% endrepeat %}
{%repeat 3%}
要重复的html
{%endrepeat%}
这是2009年的一个旧代码段,它实现了上述功能,但可能需要更新才能使用Django 1.3,但应该足以让您开始:
我知道那种类型的for循环。就像我说的,我可以使用forloops来列出对象列表中的对象。我所寻找的是一个通用的循环,可以将一些静态内容重复一定次数。我已经用一个可能有用的代码片段更新了我的答案。请明智地使用它,如果有的话。