栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django for标签详解

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django for标签详解

Django for标签详解 1. for标签的使用

for 标签用于对可迭代对象进行遍历,包括列表、元组等,它与 Python 中的 for 语法是类似的。for 标签 使用时也需要和 endfor 标签配合使用,当然它也有不同之处,那就是它多了一个可选的 empty 标签,比如用它来显示当列表不存在或者列表中元素为空的时候要显示的内容,它的使用格式如下:

{% for 变量 in 可迭代对象 %}
    ... 循环语句
{% empty %}
    ... 可迭代对象无数据时填充的语句
{% endfor %}

我们通过一个具体的实例来看一下它的用法,在 views.py 中添加如下代码:

from django.template import Template,Context
def test_for(request):
      #调用template()方法生成模板
      t1=Template("""
                    {% for item in list %}
                        
  • {{ item }}
  • {% empty %}

    如果找不到你想要,可以去csdn网(网址:http://csdn.net/)

    {% endfor %} """) #调用 Context()方法 c1= Context({'list':['Python','Java','C','Javascript','C++']}) html=t1.render(c1) return HttpResponse(html)

    并配置路由映射关系,如下所示:

    path('test_for/',views.test_for)
    

    访问 127.0.0.1:8000/test_for 得到如下页面:

    图1:for 标签的使用

    提示:与 Python 中的 for 循环不同的是,for 标签只能一次性地遍历完列表中的元素,不能中断(break),也不能跳过(continue)。

    2. for标签嵌套使用

    for 标签同样可以嵌套使用,示例代码如下所示:

    def test01_for(request):
        #使用嵌套for标签依次遍历列表取值
         website=Template("""
         {% for course in list01 %}
         
    {% for coursename in course %}

    {{ coursename }}

    {% endfor %}
    {% endfor %} """) webname=Context({'list01':[['Django','Flask','Tornado']]}) html=website.render(webname) return HttpResponse(html)

    然后为其配置路由映射关系,最后访问 127.0.0.1/test01_for 获得相应页面如下所示:

    图2:for 循环嵌套使用

    3. forloop变量详解

    在 for 标签还提供了内置变量 forloop ,我们可以访问这个变量的属性从而获取 for 循环迭代过程中的一些信息,比如 forloop.first,它的返回值是一个布尔值,当 for 循环迭代第一个元素的时候返回 True, 若有其余元素则返回的是 False。forloop 的属性主要有以下几个:

    forloop变量属性

    变量描述
    forloop.counter用来计数,查看当前迭代第几个元素(从1开始索引)
    forloop.counter0用来计数,查看当前迭代第几个元素(从0开始索引)
    forloop.revcounter表示当前循环中剩余的未被迭代的元素数量(从1开始索引)
    forloop.revcounter0表示当前循环中剩余的未被迭代的元素数量(从0开始索引)
    forloop.first如果当前迭代的是第一个元素,则为True
    forloop.last如果当前迭代的是最后一个元素,则为True
    forloop.parentloop在嵌套循环中,用来引用外层循环的 forloop

    实例说明如下所示:

    def test_forloop(request):
         a=Template("""
         {% for item in lists %}
         

    {{ forloop.counter }}:{{ item }}

    {% endfor %} """) b=Context({'lists':['Django官网','Pytho官网']}) html=a.render(b) return HttpResponse(html)

    提示:forloop 变量只能在 for 与 endfor 之间使用,它的 first 和 last 属性,可以通过 if
    标签对当前迭代元素做逻辑判断,而像 counter 属性,常用于调试程序。

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/921217.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号