• Danjgo学习笔记(四)---danjgo框架内的常用标签


    danjgo模板的部分语句用法

    # if语句笔记:
    1. 所有的标签都是在`{%%}`之间。
    2. if标签有闭合标签。就是`{% endif %}`。
    3. if标签的判断运算符,就跟python中的判断运算符是一样的。`==、!=、<、<=、>、>=、in、not in、is、is not`这些都可以使用。
    4. 还可以使用`elif`以及`else`等标签。

    # for...in...笔记:

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

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

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

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

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

    ```python
    {% 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`中的内容。示例代码如下:

    ```python
    {% for person in persons %}
    <li>{{ person }}</li>
    {% empty %}
    暂时还没有任何人
    {% endfor %}
    ```

    # with标签笔记:

    1. 在模板中,想要定义变量,可以通过`with`语句来实现。
    2. `with`语句有两种使用方式,第一种是`with xx=xxx`的形式,第二种是`with xxx as xxx`的形式。
    3. 定义的变量只能在with语句块中使用,在with语句块外面使用取不到这个变量。
    示例代码如下:
    ```python
    {% with zs=persons.0%}
    <p>{{ zs }}</p>
    <p>{{ zs }}</p>
    {% endwith %}
    下面这个因为超过了with语句块,因此不能使用
    <p>{{ zs }}</p>

    {% with persons.0 as zs %}
    <p>{{ zs }}</p>
    {% endwith %}
    ```

  • 相关阅读:
    多校第五场 归并排序+暴力矩阵乘+模拟+java大数&amp;记忆化递归
    Cocos2dx-Android 之Makefile通用高级写法
    出现异常 child-&gt;m_pParent == 0
    mybatis一对多关联查询——(九)
    mybatis一对一关联查询——(八)
    mybatis关联查询数据模型分析——(七)
    mybatis动态sql——(六)
    mybatis输入输出映射——(五)
    SqlMapConfig.xml全局配置文件介绍——(四)
    mybatis开发dao的方法——(三)
  • 原文地址:https://www.cnblogs.com/xifengqidama/p/11340164.html
Copyright © 2020-2023  润新知