📜  for 循环 – Django 模板标签(1)

📅  最后修改于: 2023-12-03 14:41:18.352000             🧑  作者: Mango

For循环 - Django模板标签

Django模板语言是一种轻量级的语言,它允许您在 Django 模板中添加动态内容。其中一个最重要的语言特性是循环操作。

循环操作通常用于从模型(数据库)中提取数据并将其显示在模板中。

1.基本循环操作

如下是Django模板中基本的for循环操作:

{% for obj in objects %}
    <p>{{ obj.name }}</p>
{% endfor %}

其中 objects 是查询的对象,obj 表示其中的元素。

2.下标循环迭代

如果你需要在循环中获得每个元素的下标索引,你可以使用下面的方法:

{% for i, obj in enumerate(objects) %}
    <p>{{ i }} - {{ obj.name }}</p>
{% endfor %}

其中 i 是下标索引,obj 是元素。

3.遍历字典

在循环遍历字典时,你可以使用dict.items()方法。

{% for key,value in my_dict.items %}
    <p>{{ key }} - {{ value }}</p>
{% endfor %}

其中 my_dict 是字典,key 和 value 是相应的字典元素。

4.条件判断

有时你需要根据某些条件来过滤对象。在这种情况下,你可以使用if条件判断。

{% for obj in objects %}
    {% if obj.age < 20 %}
        <p>{{ obj.name }}</p>
    {% else %}
        <p>{{ obj.name }} - Adult</p>
    {% endif %}
{% endfor %}
5.循环中的空值

有时候你可能需要在循环的某个地方处理空值。你可以这样写:

{% for obj in objects %}
    {% if obj.age %}
        <p>{{ obj.name }} - {{ obj.age }}</p>
    {% else %}
        <p>{{ obj.name }} - Unknown</p>
    {% endif %}
{% endfor %}
6.限制输出数量

你可以通过使用forloop.counter和forloop.counter0属性来限制条目的输出数量。

{% for obj in objects %}
    {% if forloop.counter <= 10 %}
        <p>{{ obj.name }} - {{ obj.age }}</p>
    {% endif %}
{% endfor %}

其中 forloop.counter 是从 1 开始的计数器,forloop.counter0 是从 0 开始的计数器。

7.结束循环

有时候你可能需要在特定条件下提前结束循环。你可以使用{% break %}标签实现。

{% for obj in objects %}
    {% if obj.name == 'John' %}
        <p>{{ obj.name }} is found!</p>
        {% break %}
    {% endif %}
{% endfor %}
8.跳过循环

如果你想在循环中跳过某些元素,你可以使用{% continue %}标签。

{% for obj in objects %}
    {% if obj.name == 'John' %}
        {% continue %}
    {% endif %}
    <p>{{ obj.name }}</p>
{% endfor %}
总结

通过Django模板语言中的for循环,你可以快速遍历数据,并根据条件对它们进行操作。以上介绍了Django模板中for循环的基本用法,希望能够帮助到你。