图片来源网络 模板Templates在上一篇文章中我简单的介绍了Django模板语言,这篇文章进一步讲解模板中的变量、标签等。 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./en/1.11/ref/templates/builtins/#ref-templates-builtins-filters。 下面介绍几种常用的过滤器:
如果变量是false或者空,显示default值:例如: {{ value|default:'nothing' }},如果value是false会在页面上显示nothing。
显示一个字符串或者数组的长度,如:{{ value|length }}
将文件大小按照人类可读的形式显示,例如一个文件由123456789,那么显示成117.7 MB,语法形式:{{ value|filesizeformat }}
加法运算:{{ value|add:'2' }} 这个方法会先按照数值来计算,如果失败了就直接将两个值拼接在一起,如连接两个数组。
首字母大写:{{ value|capfirst }}
删除指定值,例如去掉字符串中的空格:{{ value|cut:' ' }} 如果value是'String with spaces',那么输出'Stringwithspaces'.
格式化日期,该方法参数较多也很重要,请参考Django官网。
将一个字典按照某一字典项进行排序后返回, 例如,有一个字典users如下,包含三个人员信息: 按照人名进行排序: 显示样式:
将一个html字符串转意: 浏览器显示:
拼接多个元素 标签Tags
循环执行标签内部代码,例如:
和其它编程语言的if语句一样,当条件为真或不为空时,执行代码块,例如: If标签中可以嵌套其它标签。 注释Comments两种注释方式: {# 这里是注释 #} 注释标签: |
|