Django的模板是一个简单的文本文件,它可以生成任何文本格式(HTML、XML、CSV等),在本文开始之前先看一个Django模板的例子:
从这个例子中可以看到,模板标签可以是单独出现的,如extends标签;也可以是成对出现的,如block标签和for标签。而模板的主体就是一个HTML结构的文本文件,看到这里我想如果有过ASP, PHP开发经验的人都会感到很亲切,因为它们的语法非常相似,都是嵌入到HTML中的标记语言。
变量Variables
变量的基本用法:{{ variable }},当模板引擎遇到变量时会将变量替换为具体值。变量名可以包含字母数字和下划线,不能包含空格及其它特殊符号。句点(.)在变量中有特殊意义,如果模板引擎遇到了句点将会按照下面的顺序对其进行解释:
字典查找
查找属性和方法
查找下标元素
注意如果句点后面的变量是一个可以调用的方法的话,那么这个方法会按照空参数的方式调用,例如一个字典的iteritems方法可以在模板中用以下方式调用:
过滤器Filters
你可以使用过滤器来修改变量值的显示样式。过滤器的使用方式 {{ 变量|过滤器方法}}。过滤器可以连续使用,形式如: {{ 变量|过滤器方法1|过滤器方法2}}。
注意变量、管道符(|)和过滤器方法之间不能有空格。
某些过滤器还可以接收参数,例如:{{ bio|truncatewords:30 }},这句代码的意思是显示bio的前30个单词。
如果过滤器参数包含空格的话,参数就要用引号扩起来,例如:{{ list|join:", " }}。
Django大约提供了60个过滤器,具体介绍可以在Django官网看到:
https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#ref-templates-builtins-filters。
下面介绍几种常用的过滤器:
Default
如果变量是false或者空,显示default值:例如: {{ value|default:"nothing" }},如果value是false会在页面上显示nothing。
Length
显示一个字符串或者数组的长度,如:{{ value|length }}
Filesizeformat
将文件大小按照人类可读的形式显示,例如一个文件由123456789,那么显示成117.7 MB,语法形式:{{ value|filesizeformat }}
Add
加法运算:{{ value|add:"2" }}
这个方法会先按照数值来计算,如果失败了就直接将两个值拼接在一起,如连接两个数组。
Capfirst
首字母大写:{{ value|capfirst }}
cut
删除指定值,例如去掉字符串中的空格:{{ value|cut:" " }}
如果value是"String with spaces",那么输出"Stringwithspaces".
Date
格式化日期,该方法参数较多也很重要,请参考Django官网。
Dictsort
将一个字典按照某一字典项进行排序后返回,
例如,有一个字典users如下,包含三个人员信息:
按照人名进行排序:
显示样式:
Escape
将一个html字符串转意:
浏览器显示:
Join
拼接多个元素
标签Tags
For标签
循环执行标签内部代码,例如:
If,elif和else标签
和其它编程语言的if语句一样,当条件为真或不为空时,执行代码块,例如:
If标签中可以嵌套其它标签。
注释Comments
两种注释方式:
{# 这里是注释 #}
注释标签: