• django第四课 标签的用法(if/else、for、ifequal、过滤器、注释等)


    if/else

      {% if %}

        <p>内容</P>

      {% endif %}

      {% else %}是可选标签

        {% if %}

          <p>内容</P>

        {% else %}

          <p>内容</p>

        {% endif %}

    '真值'

      False:空元组 空字典 空字符串 0 None False

    for  

      <ul>
        {% for athlete in athlete_list %}
          <li>{{ athlete.name }}</li>
        {% endfor %}
      </ul>

      加入reserved,列表会被反向迭代输出

        <ul>
          {% for athlete in athlete_list  reserved %}
            <li>{{ athlete.name }}</li>
          {% endfor %}
        </ul>

      for语句也可以嵌套使用

        <ul>
          {% for athlete in athlete_list  reserved %}
            <h>{{ athlete.name }}</h>
          

            <ul>
              {% for sport in athlete.sports_played %}
                <li>{{ sport }}</li>
              {% endfor %}
            </ul>

          {% endfor %}
        </ul>

    Django不支持退出循环操作。 如果我们想退出循环,可以改变正在迭代的变量,让其仅仅包含需要迭代的项
    目。 同理,Django也不支持continue语句,我们无法让当前迭代操作跳回到循环头部。

    forloop 

      在每个`` {% for %}``循环里有一个称为`` forloop`` 的模板变量。这个变量有一些提示循环进度信息的属性。forloop.counter 总是一个表示当前循环的执行次数的整数计数器。 这个计数器是从1开始的,所以在第一次循环时 forloop.counter 将会被设置为1。
        {% for item in todo_list %}
          <p>{{ forloop.counter }}: {{ item }}</p>
        {% endfor %}
      forloop.counter0 类似于 forloop.counter ,但是它是从0计数的。 第一次执行循环时这个变量会被设置为0。
      forloop.revcounter 是表示循环中剩余项的整型变量。 在循环初次执行时 forloop.revcounter 将被设置为序列中项的总数。 最后一次循环执行中,这个变量将被置1。
      forloop.revcounter0 类似于 forloop.revcounter ,但它以0做为结束索引。 在第一次执行循环时,该变量会被置为序列的项的个数减1。
      forloop.first 是一个布尔值,如果该迭代是第一次执行,那么它被置为````

      forloop.last 是一个布尔值;在最后一次执行循环时被置为True。

    ifequal/ifnotequal

      {% ifequal %}标签比较两个值,当他们相等时,显示在 {% ifequal %}和 {% endifequal %}之中所有的值。

        {% ifequal user currentuser %}
          <h1>Welcome!</h1>
        {% endifequal %}

      {% if %}类似, {% ifequal %}支持可选的 {% else%}标签

        {% ifequal section 'sitenews' %}
          <h1>Site News</h1>
        {% else %}
          <h1>No News Here</h1>
        {% endifequal %}

    注释

      {# This is a comment #}

    过滤器

      {{ name|lower }}:将name装换成小写

      {{ my_list|first|upper }}:将my_list的第一个字母大写

      {{ bio|truncatewords:"30" }}:取bio的前30个字符串

  • 相关阅读:
    牛客IOI周赛17-提高组 卷积 生成函数 多项式求逆 数列通项公式
    6.3 省选模拟赛 Decompose 动态dp 树链剖分 set
    AtCoder Grand Contest 044 A Pay to Win 贪心
    5.29 省选模拟赛 树的染色 dp 最优性优化
    luogu P6097 子集卷积 FST FWT
    CF724C Ray Tracing 扩展欧几里得 平面展开
    5.30 省选模拟赛 方格操作 扫描线 特殊性质
    5.29 省选模拟赛 波波老师 SAM 线段树 单调队列 并查集
    Spring main方法中怎么调用Dao层和Service层的方法
    Bug -- WebService报错(两个类具有相同的 XML 类型名称 "{http://webService.com/}getPriceResponse"。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。)
  • 原文地址:https://www.cnblogs.com/ybf-yyj/p/8120286.html
Copyright © 2020-2023  润新知