• Django模板系统-标签Tags


    for

     <ul>
     {% for user in user_list %}
        <li>{{ user.name }}</li>
     {% endfor %}
     </ul>

    【参数】

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

    for ... empty

    如果for循环的参数-列表为空,将执行empty里面的内容

     <ul>
     {% for user in user_list %}
        <li>{{ user.name }}</li>
     {% empty %}
        <li>空空如也</li>
     {% endfor %}
     </ul>

    if,elif和else

     {% if user_list %}
      满足条件一:{{ user_list|length }}
     {% elif black_list %}
      满足条件而:{{ black_list|length }}
     {% else %}
      剩下的所有
     {% endif %}

    【注意】

    • 支持 and or not,且and和or可以联用。但and的优先级高于or

    • if标签中不允许使用 () ,可以依靠嵌套if来实现

    • if标签中的条件判断语句有 == , != , > , < , >= , <= , in , not in , is , not is 。 is和not is是django1.10中的新特性。

    • 不支持连续判断

    • if标签中可以使用过滤器

    • if标签衍生出了ifequal和ifnotequal,{% ifequal a b %} 等于 {% if a==b %}

    ifchange

    检查循环中的某个值在最近一次循环时是否改变。可以使用 else 标签。用法有两个:

    • 它会把要渲染的内容与前一次作比较,发生变化时才显示它。

    • 如果给的是一个或者多个变量,就会检查其中任一个变量是否发生改变。

    with

    定义一个中间变量,用更简单的变量名代替复杂的变量名

    {% with total=business.employees.count %}
        {{ total }} employee{{ total|pluralize }}
     {% endwith %}

    csrf_token

    跨站请求伪造保护,可以在页面的form表单里面写上{% csrf_token %;django为用户实现防止跨站请求伪造的功能,在全局模式下通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成; ​ 还可以使用局部方式进行限制:@csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件;与之对应的@csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件。使用局部模式时需要导入from django.views.decorators.csrf import csrf_exempt,csrf_protect

    原理

    当用post提交数据的时候,django会去检查是否有一个csrf的随机字符串,如果没有就会报错,这也是之前我们一直将中间件注释的原因

    forbidden

    给from表单添加{%csrf_token%}
     <form action="" method="post">
        {% csrf_token %}
        <input type="text" name="name">
        <button>提交</button>
     </form>

    执行后效果:

    widthratio

    计算给定值与最大值的比率,然后将该比率当作一个常量进行操作

     模板
     {% widthratio this_value max_value max_width as width %}
     ​
     可以用来进行乘除运算
     # 乘法
     {% widthratio 5 1 100 %}   # 5/1*100 = 500
     # 除法
     {% widthratio 6 2 1 %}   # 6/2*1
  • 相关阅读:
    [liu yanling]常用的测试工具
    [liu yanling]软件测试的过程
    [liu yanling]测试方法
    [Buffalo] 一些SQL函数
    [Stephen]C#中调用C++动态链接库
    [Jacky] 解决Ext.Net GridPanel 选择的行数据刷新后不能获取最新值
    [Tommas] dateadd() 函数用法
    [Tommas] UNION 和 UNION ALL 的区别
    文件I/O编程
    分房问题
  • 原文地址:https://www.cnblogs.com/jjzz1234/p/11617291.html
Copyright © 2020-2023  润新知