当前位置:   article > 正文

Django 循环模板标签

Django 循环模板标签

1,循环模板标签

Django 模板系统中提供了多种循环模板标签来迭代数据并显示列表、字典或其他可迭代对象。

1.2 {% for %} 标签

用于迭代列表或可迭代对象,并为每个元素提供上下文变量。

  1. {% for item in items %}
  2. {{ item }} <!-- 渲染当前迭代项 -->
  3. {% endfor %}

1.3 {% for %} 与索引

在迭代时,可以使用 forloop.counter 访问当前迭代的索引(从1开始)。

  1. {% for item in items %}
  2. {{ forloop.counter }}: {{ item }}
  3. {% endfor %}

1.4 {% for %} 与反转索引

使用 forloop.revcounter 访问当前迭代的反转索引(从列表长度开始递减)。

  1. {% for item in items %}
  2. {{ forloop.revcounter }}: {{ item }}
  3. {% endfor %}

1.5 {% for %} 与迭代次数

使用 forloop.last 判断当前迭代是否是最后一次迭代。

  1. {% for item in items %}
  2. {{ item }}
  3. {% if not forloop.last %}, {% endif %}
  4. {% endfor %}

1.6 {% empty %} 标签

如果被迭代的变量为空或不存在,将渲染 {% empty %} 标签和与之对应的 {% endfor %} 之间的内容。

  1. {% for item in items %}
  2. {{ item }}
  3. {% empty %}
  4. <!-- 没有可迭代的项目时渲染 -->
  5. No items to display.
  6. {% endfor %}

1.7{% for %} 与字典

当迭代字典时,可以使用 forloop.counter0 和 forloop.counter 访问键和值。

  1. {% for key, value in my_dict.items %}
  2. {{ key }}: {{ value }}
  3. {% endfor %}

示例:

2,添加HTML代码

Test/templates/4/for_demo.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <table border="1">
  9. {% for list in lists %}
  10. {% if forloop.first %}
  11. <tr>
  12. <td>
  13. 第一个值:{{ list.书名 }}
  14. </td>
  15. </tr>
  16. {% endif %}
  17. <tr>
  18. <td>
  19. 当前值:{{ list.书名 }}, 价格:{{ list.价格 }}, 当前正序索引:{{ forloop.counter0 }}, 当前倒序索引:{{ forloop.revcounter0 }}
  20. </td>
  21. </tr>
  22. {% if forloop.last %}
  23. <tr>
  24. <td>
  25. 最后一个值:{{ list.书名}}
  26. </td>
  27. </tr>
  28. {% endif %}
  29. {% endfor %}
  30. </table>
  31. </body>
  32. </html>

3,添加视图函数

Test/app4/views.py

  1. from django.shortcuts import render
  2. # Create your views here.
  3. def var(request):
  4. name = '小6'
  5. # 列表对象
  6. lists = ['java', 'python', 'c', 'c++', 'js']
  7. # 字典对象
  8. dicts = {'姓名': '小强', '年龄':25, '性别':'男'}
  9. return render(request, '4/var.html', {'lists': lists, 'dicts': dicts, 'name':name})
  10. def if_demo(request):
  11. age = 18
  12. return render(request, '4/if_demo.html', {'age':age})
  13. def for_demo(request):
  14. dict1 = {'书名':'Django开发教程', '价格':28, '作者':'小强'}
  15. dict2 = {'书名':'java开发教程', '价格':38, '作者':'小红'}
  16. dict3 = {'书名':'python开发教程', '价格':48, '作者':'小6'}
  17. dict4 = {'书名':'c开发教程', '价格':58, '作者':'小7'}
  18. lists = [dict1, dict2, dict3, dict4]
  19. return render(request, '4/for_demo.html', {'lists':lists})

4,添加路由地址

Test/app4/urls.py

5,访问页面

http://127.0.0.1:8000/app4/for_demo

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号