Django 内置模板标签和过滤器

时间:2021-06-01 20:20:38

一、内置模板标签

语法:{%  %}

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