• Django模板语言-Tags


    Tags

    1. Tags
      # 普通for循环
      
      <ul>
      {% for user in user_list %}
          <li>{{ user.name }}</li>
      {% endfor %}
      </ul>

      for循环可用的一些参数:

      VariableDescription
      forloop.counter 当前循环的索引值(从1开始)
      forloop.counter0 当前循环的索引值(从0开始)
      forloop.revcounter 当前循环的倒序索引值(从1开始)
      forloop.revcounter0 当前循环的倒序索引值(从0开始)
      forloop.first 当前循环是不是第一次循环(布尔值)
      forloop.last 当前循环是不是最后一次循环(布尔值)
      forloop.parentloop 本层循环的外层循环

      for ... empty

      # 如果user_list 里面元素为0个的时候执行 empty
      
      <ul>
      {% for user in user_list %}
          <li>{{ user.name }}</li>
      {% empty %}
          <li>空空如也</li>
      {% endfor %}
      </ul>
    2. if判断

      # if,elif和else
      
      
      {% if user_list %}
        用户人数:{{ user_list|length }}
      {% elif black_list %}
        黑名单数:{{ black_list|length }}
      {% else %}
        没有用户
      {% endif %}
      # 当然也可以只有if和else
      
      {% if user_list|length > 5 %}
        七座豪华SUV
      {% else %}
          黄包车
      {% endif %}
      
      # if语句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判断。
    3. with

      # 定义一个中间变量,多用于给一个复杂的变量起别名。
      
      # 注意等号左右不要加空格。
      
      {% with total=business.employees.count %}
          {{ total }} employee{{ total|pluralize }}
      {% endwith %}
      
      #
      
      {% with business.employees.count as total %}
          {{ total }} employee{{ total|pluralize }}
      {% endwith %}
    4. csrf_token

      这个标签用于跨站请求伪造保护。

      在页面的form表单里面写上{% csrf_token %}

    5. 注意事项

      1. Django的模板语言不支持连续判断,即不支持以下写法:
        {% if a > b > c %}
        ...
        {% endif %}
      2. Django的模板语言中属性的优先级大于方法
        def xx(request):
            d = {"a": 1, "b": 2, "c": 3, "items": "100"}
            return render(request, "xx.html", {"data": d})

        如上,我们在使用render方法渲染一个页面的时候,传的字典d有一个key是items并且还有默认的 d.items() 方法,此时在模板语言中:

        {{ data.items }}

        默认会取d的items key的值。

  • 相关阅读:
    CharSequence的getText()与String的getString()(转)
    android 1.6 launcher研究之自定义ViewGroup (转 2011.06.03(二)——— android 1.6 launcher研究之自定义ViewGroup )
    2.1Android界面View及ViewGroup(转)
    Android笔记:百度地图与高德地图坐标转换问题
    NDK常用命令
    深入Java单例模式(转)
    CentOS 6.2 安装vsftpd 服务器(转)
    centos 安装FTP server详情(转)
    CentOS 6.3下NTP服务安装和配置
    搭建vscode+vue环境
  • 原文地址:https://www.cnblogs.com/wtil/p/11488523.html
Copyright © 2020-2023  润新知