Django模板过滤器
Django常用的过滤器
1、 add :字符串相加,数字相加,列表相加,如果失败,将会返回一个空字符串。
2、default:提供一个默认值,在这个值被django认为是False的时候使用。比如:空字符串、None。区别于default_if_none,这个只有在变量为None的时候才使用默认值。
3、first:返回列表中的第一个值。
4、last:返回列表中的最后一个值。
5、date:格式化日期和时间。
6、time:格式化时间。
7、join:跟python中的join一样的用法。
8、length:返回字符串或者是数组的长度。
9、length_is:字符串或者是数组的长度是否是指定的值。
10、lower:把所有字符串都变成小写。
11、truncatechars:根据后面给的参数,截断字符,如果超过了用…表示。
12、truncatewords:同truncatechars,这个是以一个单词为单位进行截断。
以上两个有xxx_html类型的,针对html,截断标签中的字符,而不会截断标签。
13、capfirst:首字母大写。
14、slice:切割列表。用法跟python中的切片操作是一样的,区间是前闭合后开放。
15、striptags:去掉所有的html标签。
16、safe:关闭变量的自动转义
17、floatformat:浮点数格式化
date和time过滤器格式
Y:四位数的年。如:1999
y:两位数的年。如:99
m:两位数的月。如:01,09
n:一位数的月。如:1,9,12
d:两位数的日。如:01,09,31
j:一位数的日。如:1,9,31
g:12小时制的一位数的小时。如:1,9,12
G:24小时制的一位数小时。如:0,8,23
h:12小时制的两位数的小时。如:01,09,12
H:24小时制的两位数的小时。如:01,13,24
i:分钟。从00-59
s:秒。从00-59
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小小诺</title>
</head>
<body>
1原始字符串{{ ha }}<br>
2如果不存在{{ a | default:'1' }}<br>
2如果不存在{{ a | default_if_none:'1' }}<br>
3如果为none{{ b | default:'1' }}<br>
3如果为none{{ b | default_if_none:'1' }}<br>
4变小写{{ ha | lower }}<br>
5变小写首字母大写{{ ha | lower |capfirst}}<br>
6数字相加{{ num1 | add:num2 }}<br>
7字符串相加{{ ha | add:xi }}<br>
8列表的第一个元素{{ sa |first }}<br>
9列表的最后一个元素{{ sa |last }}<br>
10这是默认的data日期时间格式:{{ time | date }}<br>
11这是默认的time时间格式{{ time | time }}<br>
12这是data过滤器的年月日24小时制时间格式:{{ time|date:'Y/m/d/H:i:s ' }}<br>
13这是time过滤器的年月日12小时制时间格式:{{ time|time:'h:i:s ' }}<br>
14字符串join方法{{ ha |join:'***'}}<br>
15这是字符串的长度方法:{{ ha |length }}<br>
16这是列表的长度是否长度为4(包括空格):{{ ha | length_is:4}}<br>
17这是字符串只显示2个字符,其余省略(...占3位):{{ ha | truncatechars:5 }}<br>
18这是字符串只显示1个单词,其余省略(...不占位):{{ ha | truncatewords:2 }}<br>
19这是字符串切片{{ ha |slice:'1:4'}}<br>
20这是列表切片{{ sa |slice:'1:2' }}<br>
21含标签的html{{ html }}<br>
22去掉标签的html {{ html | striptags}}<br>
23使标签生效的html {{ html | safe }}<br>
24没处理的小数{{ float }}<br>
25只保留一位小数{{ float | floatformat }}<br>
26保留指定位数的小数{{ float | floatformat:'4' }}<br>
</body>
</html>
def test_9(request):
ha = 'MY LOVE'
xi = 'IS KNIGHT'
ni = '<h1>my god</h1>'
sa = ['a','s','d']
return render(request, 'book_templates_9.html', context={'ha': ha,
'xi': xi,
'a': '',
'b': None,
'num1': 1,
'num2': 2,
'time': datetime.now(),
'html': ni,
'float': 3.1415926,
'sa' :sa,
})
关于自动转义
什么是自动转义?
自动转义是将变量的一些特殊字符,比如左箭头(<)、右箭头(>)转义成html代码,这样做的目的是为了处理一些不安全的变量。
<:转义成<
>:转义成>
‘:转义成'
“:转义成"
&:转义成&