Django 内置模板标签和过滤器

一、内置模板标签

语法:{%  %}

autoescape :
        是否转义,on或off作为参数,并确定自动转义是否在块内有效。该块以endautoescape结束
        {% autoescape on %}
            {{ body }}
        {% endautoescape %}

    block : 定义 可以被子模块覆盖的块,具体的参阅Django模板与继承
    comment :
       忽略comment之间的所有内容
       查看网页源码也不会存在

    csrf_token :
        此标记用于csrf保护,具体的参阅Django跨站请求伪造
        用于form表单提交数据的时候
    cycle :

    debug :输出整个调试信息,包括当前上下文和导入的模块。
    extends :表示该模板扩展了父模板。
    filter:
        通过一个或多个过滤器过滤块的内容
        可以通过管道指定多个过滤器
        并且过滤器可以具有参数

    firstof:
        如果输出的不是第一个变量,值将为False。
        {% firstof var1 var2 var3 %}
        这相当于:

        {% if var1 %}
            {{ var1 }}
        {% elif var2 %}
            {{ var2 }}
        {% elif var3 %}
            {{ var3 }}
        {% endif %}
    for:
        循环容器中每个项,使每一项都能在上下文变量中可用
        可以反向迭代
        forloop.counter    循环的当前迭代
    for ... empty :
        如果给定的容器为空或无法找到,则for标签可以接受一个可选的子句
        <ul>
            {% for athlete in athlete_list %}
                <li>{{ athlete.name }}</li>
            {% empty %}
                <li>Sorry, no athletes in this list.</li>
            {% endfor %}
        </ul>
    if :
        所述标签计算一个变量,并且如果该变量的值使“真”的数据块的内容被输出
    ifequal 和 ifnotequal : 过时的标签

    ifchanged:检查一个值是否从循环的最后一次迭代中改变了。
    include :
        加载模板并使用当前上下文进行渲染。这是在模板中“包含”其他模板的一种方式。
        {% include "foo/bar.html" %}
        {% include template_name %}
    load:加载自定义模板标记集。


    lorem : 随机显示“lorem ipsum”拉丁文字。这对于在模板中提供示例数据很有用。
    now : 显示当前日期和/或时间,使用根据给定字符串的格式。
    regroup : 用一个共同的属性重新组合一个类似对象的列表。
    resetcycle :
    spaceless : 删除HTML标签之间的空白。这包括制表符和换行符。
    templatetag : 输出用于组成模板标签的语法字符之一。
    url : 返回与给定视图和可选参数匹配的绝对路径引用(没有域名的URL)

        path('client/<int:id>/', app_views.client, name='app-views-client')
        传参 : {% url 'app-views-client' v1 v2 %}
        传参 : {% url 'app-views-client' arg1=v1 arg2=v2 %}
    verbatim : 停止模板引擎渲染此块标记的内容。
    widthratio : 为了创建条形图等,该标签计算给定值与最大值的比率,然后将该比率应用于常数。
    with : 以更简单的名称缓存复杂变量。

猜你喜欢

转载自www.cnblogs.com/weihengblog/p/9096430.html