• Django DTL模板语法中的循环的笔记


    for...in...笔记:

    for...in...标签:

    for...in...类似于Python中的for...in...。可以遍历列表、元组、字符串、字典等一切可以遍历的对象。示例代码如下:

    {% for person in persons %}
    <p>{{ person.name }}</p>
    {% endfor %}
    

    如果想要反向遍历,那么在遍历的时候就加上一个reversed。示例代码如下:

    {% for person in persons reversed %}
    <p>{{ person.name }}</p>
    {% endfor %}
    

    遍历字典的时候,需要使用itemskeysvalues等方法。在DTL中,执行一个方法不能使用圆括号的形式。遍历字典示例代码如下:

    {% for key,value in person.items %}
    <p>key:{{ key }}</p>
    <p>value:{{ value }}</p>
    {% endfor %}
    

    for循环中,DTL提供了一些变量可供使用。这些变量如下:

    • forloop.counter:当前循环的下标。以1作为起始值。
    • forloop.counter0:当前循环的下标。以0作为起始值。
    • forloop.revcounter:当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。
    • forloop.revcounter0:类似于forloop.revcounter。不同的是最后一个元素的下标是从0开始。
    • forloop.first:是否是第一次遍历。
    • forloop.last:是否是最后一次遍历。
    • forloop.parentloop:如果有多个循环嵌套,那么这个属性代表的是上一级的for循环。

    ** 模板中的for...in...没有continue和break语句,这一点和Python中有很大的不同,一定要记清楚! **

    for...in...empty标签:

    这个标签使用跟for...in...是一样的,只不过是在遍历的对象如果没有元素的情况下,会执行empty中的内容。示例代码如下:

    {% for person in persons %}
    <li>{{ person }}</li>
    {% empty %}
    暂时还没有任何人
    {% endfor %}
    
  • 相关阅读:
    elasticserach7.X 安装,配置
    org.elasticsearch.bootstrap.StartupException: ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/home/ae/es761/data/nodes];
    Java 八大基本数据类
    java 输入scanner
    idea生成javaDoc文件
    时间戳和日期的相互转化
    自1970 年1月1日8时0分0秒至当前时间的总秒数什么意思?
    JDK的卸载与JDK的安装以及环境变量配置
    Java特性与优势
    图片识别
  • 原文地址:https://www.cnblogs.com/randomlee/p/10296724.html
Copyright © 2020-2023  润新知