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 : 以更简单的名称缓存复杂变量。