模板变量,常用过滤器
一 模板变量
引言
静态页面:静态网页一经制成,内容就不会再变化,不管何人何时访问,显示的内容都是一样的。如果要修改网页的内容,就必须修改其源代码,然后重新上传到服务器上。
动态页面:指在网页文件中除了HTML标记以外,还包括一些实现特定功能的程序代码,这些程序代码使得浏览器与服务器之间可以进行交互,即服务器端可以根据客户端的不同请求动态产生网页内容。
变量的命名、语法、注意事项
1.命名:有字母、数字、下划线组成,不能以下划线开头,不易有空格和标点符号
2.语法:{{ 变量名}}
3.不要用python和django的关键字命名
模板的解析规则
①计算变量,返回其结果
②变量后有"." / dot(.),处理的优先级:
1.字典的键值
2.字典的属性
3.数字的索引
③结果是可调用的,则返回调用的结果(这个调用不可携带参数,若他带了参数或者这个调用返回的是个空值,django都不将其渲染到前端页面,全部显示为空)
二 过滤器
作用
对变量进行过滤。在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后再替换掉原来的变量展示出来。
语法
{{fruits|lower}}
链式管道
进行链式调用,比如实现一个功能,先把所有字符变成小写,把第一个字符转换成大写
{{fruits|lower|capfirst}}
使用参数
过滤器可以使用参数,在过滤器名称后面使用冒号”:”再加上参数
比如要把一个字符串中所有的空格去掉,则可以使用cut过滤器,
{{fruits|cut:" "}}
注意:使用参数的时候,冒号和参数之间不能有任何空格,一定要紧挨着。
三 常用过滤器
add
使用形式为:{{ value | add: "2"}}
意义:将value的值增加2
date
使用形式为:
(a) {{ value | date:"D d M Y" }},例如,如果value是一个datetime对象(datetime.datetime.now())那么输出将是字符串"Wed 09 Jan
2008"
(b) {{ value | date }},这种形式没有格式化字符串,这时候,格式化字符串会自动采用DATE_FORMAT所设置的形式。
意义:将日期格式数据按照给定的格式输出
default
使用形式:{{ value | default:
"nothing" }},例如,如果value是“”,那么输出将是nothing
first
使用形式:{{ value | first }}
slice
使用形式:{{some_list | slice:":2"}}
length
使用形式:{{ value | length }}
意义:返回value的长度。
length_is
使用形式:{{ value | length_is:"arg"}}
意义:返回True,如果value的长度等于arg的时候,例如:如果value是['a','b','c'],arg是3,那么返回True
safe
使用形式:{{value | safe}}
意义:当系统设置autoescaping打开的时候,该过滤器使得输出不进行escape转换