模板层之过滤器
1模版语法之数据类型过滤
1  | **语法:** {{obj|filter__name:param}} 变量名字|过滤器名称:变量  | 
default
如果一个变量是false或者为空,使用给定的默认值。否则,使用变量的值。例如:
1  | {{ value|default:"nothing" }}  | 
length
返回值的长度。它对字符串和列表都起作用。例如:
1  | `{{ value|length }}`  | 
1  | 如果 value 是 ['a', 'b', 'c', 'd'],那么输出是 4。  | 
filesizeformat
1  | 将值格式化为一个 “人类可读的” 文件尺寸 (例如 `'13 KB'`, `'4.1 MB'`, `'102 bytes'`, 等等)。例如:  | 
1  | `{{ value|filesizeformat }}`  | 
如果 value 是 123456789,输出将会是 117.7 MB。
date
如果 value=datetime.datetime.now()
1  | `{{ value|date:``"Y-m-d"` `}} `  | 
slice
如果 value=”hello world”
1  | `{{ value|``slice``:``"2:-1"` `}}`  | 
1  | truncatechars[ ](http://python.usyiyi.cn/documents/django_182/ref/templates/builtins.html#truncatechars)  | 
safe
Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。比如:
1  | `value``=``"`">点击"`  | 
1  | `{{ value|safe}}`  | 
其它过滤器了解)
1  | | 过滤器 | 描述 | 示例 |  | 
locals()可以接受所有的模板变量
模板之数据类型过滤器
views.py层之数据类型过滤
1  | def moban(request):  | 
template层之数据类型过滤
1  | <p>统计字符串的长度:{{ name|length }}</p>  | 
模板之文件过滤器
views.py层之文件过滤
1  | def moban(request):  | 
template层之文件过滤
1  | <p>过滤器之truncatechars:{{ 'dafddfafgadfgaasdgadgfadaf'|truncatechars:5 }}</p>  | 
模板之HTML标签和JS等语法标签进行自动转义过滤器safe
1.HTML标签自动转义过滤
views.py层之safeHTML标签自动转义过滤
1  | def moban(request):  | 
template层之safeHTML标签自动转义过滤
1  | <p>过滤器之不用safe:{{ h1 }}</p>  | 
2.css选择器自动转义过滤
views.py层之safecss选择器自动转义过滤
1  | def moban(request):  | 
template层之safecss选择器自动转义过滤
1  | <p>css之不用safe:{{ css1 }}</p>  | 
3.JS等语法标签自动转义过滤
views.py层之safeJS自动转义过滤
1  | def moban(request):  | 
template层之safeJS自动转义过滤
1  | <p>过滤器之不用safe:{{ script }}</p>  |