过滤器
语法如下:
- 使用管道符号|来应用过滤器,用于进行计算、转换操作,可以使用在变量、标签中。
 - 如果过滤器需要参数,则使用冒号:传递参数。
 
变量|过滤器:参数
长度length,返回字符串包含字符的个数,或列表、元组、字典的元素个数。
默认值default,如果变量不存在时则返回默认值。
data|default:'默认值'
日期date,用于对日期类型的值进行字符串格式化,常用的格式化字符如下:
- Y表示年,格式为4位,y表示两位的年。
 - m表示月,格式为01,02,12等。
 - d表示日, 格式为01,02等。
 - j表示日,格式为1,2等。
 - H表示时,24进制,h表示12进制的时。
 - i表示分,为0-59。
 - s表示秒,为0-59。
 
value|date:"Y年m月j日  H时i分s秒"
点击查看内建过滤器了解更多过滤器。
示例
1)打开booktest/views.py文件,创建视图temp_filter。
def temp_filter(request):
    context={'list':BookInfo.objects.all()}
    return render(request,'booktest/temp_filter.html',context)
2)打开booktest/urls.py文件,配置url。
    url(r'^temp_filter/$', views.temp_filter),
3)在templates/booktest下创建temp_filter.html。
<head>
    <title>过滤器</title>
</head>
<body>
图书列表如下:
<ul>
    {%for book in list%}
        {%if book.btitle|length > 4%}
            <li style="background-color: red;">
                {{book.btitle}}
                ---默认时间格式为:
                {{book.bpub_date}}
            </li>
        {%else%}
            <li style="background-color: green;">
                {{book.btitle}}
                ---格式化时间为:
                {{book.bpub_date|date:"Y-m-j"}}
            </li>
        {%endif%}
    {%endfor%}
</ul>
</body>
</html>
4)运行服务器,在浏览器中输入如下网址。
http://127.0.0.1:8000/temp_filter/
浏览效果如下图:
