模板层之过滤器
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> |