Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 如何在Django模板中执行forloop?_Python_Django - Fatal编程技术网

Python 如何在Django模板中执行forloop?

Python 如何在Django模板中执行forloop?,python,django,Python,Django,我知道如何通过forloop从列表中获取对象,但这里我要说的是forloop,目的是重复一定次数的内容。就像我在PHP中所做的那样: for (i=0; i < 10; i++) { hello <br /> } (i=0;i

我知道如何通过forloop从列表中获取对象,但这里我要说的是forloop,目的是重复一定次数的内容。就像我在PHP中所做的那样:

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来列出对象列表中的对象。我所寻找的是一个通用的循环,可以将一些静态内容重复一定次数。我已经用一个可能有用的代码片段更新了我的答案。请明智地使用它,如果有的话。