作用:

根据开发者需求,在渲染前对变量进行过滤处理。

语法:

单个过滤器:{{ post.body|length }}
多个过滤器:{{ post.article|safe|capfirst }}
带参数使用:{{ post.pub_date|date:'Y/m/d' }}

Django常用的过滤器

add:字符串相加,数字相加,列表相加,如果失败,将会返回一个空字符串。

default:提供一个默认值,在这个值被django认为是False的时候使用。比如:空字符串、None。区别于default_if_none,这个只有在变量为None的时候才使用默认值。

first:返回列表中的第一个值。

last:返回列表中的最后一个值。

join:跟python中的join一样的用法。

length:返回字符串或者是数组的长度。

length_is:字符串或者是数组的长度是否是指定的值。

lower:把所有字符串都编程小写。

truncatechars:根据后面给的参数,截断字符,如果超过了用…表示。

truncatewords:同truncatechars,这个是以一个单词为单位进行截断。

capfirst:首字母大写。

slice:切割列表。用法跟python中的切片操作是一样的,区间是前闭合后开放。

striptags:去掉所有的html标签。

safe:关闭变量的自动转义

floatformat:浮点数格式化。

date:格式化日期和时间。

time:格式化时间。

date和time过滤器格式

Y:四位数年。如:1999
y:两位数年
m:两位月(不足10在十位补零)
d:两位日(不足10在十位补零)
n:月
j:日
h:12小时制两位的时(不足10在十位补零)
H:24小时制两位的时(不足10在十位补零)
g:12小时制的时
G:24小时制的时
i:分钟
s:秒

<body>
    这是没做处理的变量:{{ test }}<br>
    这是设置了默认值的变量:{{ xx|default:'xxxxxx' }}<br>
    这是设置了只有为None时才使用默认值的变量:{{ xx|default_if_none:'xxxxxx' }}<br>
    这是变为小写后的变量:{{ test|lower }}<br>
    这是先变成小写再将首字母大写后的变量:{{ test|lower|capfirst}}<br>
    这是两个数字变量相加:{{ num1|add:num2 }}<br>
    这是两个字符串变量相加:{{ test|add:xx }}<br>
    这是列表变量的第一个元素:{{ list|first }}<br>
    这是列表变量的最后一个元素:{{ list|last }}<br>
    这是默认的data日期时间格式:{{ now|date }}<br>
    这是默认的time时间格式:{{ now|time }}<br>
    这是data过滤器的年月日24小时制时间格式:{{ now|date:'Y/m/d/H:i:s ' }}<br>
    这是time过滤器的年月日12小时制时间格式:{{ now|time:'h:i:s ' }}<br>
    这是字符串的join方法:{{ ls|join:'xxx' }}<br>
    这是字符串的长度方法:{{ test|length }}<br>
    这是列表的长度是否长度为4:{{ list|length_is:4 }}<br>
    这是字符串只显示4个字符,其余省略(占3位):{{ test|truncatechars:7 }}<br>
    这是字符串只显示2个单词,其余省略(不占位):{{ test|truncatewords:2 }}<br>
    这是字符串切片:{{ test|slice:'1:4' }}<br>
    这是列表切片:{{ list|slice:':2' }}<br>
    这是含html标签的字符串:{{ html }}<br>
    这是去掉字符串中的html标签:{{ html|striptags }}<br>
    这是关掉自动转义,使字符串中html标签生效:{{ html|safe }}<br>
    这是没做处理的小数:{{ float }}<br>
    这是保留了一位小数:{{ float|floatformat }}<br>
    这是保留了两位位小数:{{ float|floatformat:'2' }}<br>  
</body>