Django学习Day5——模版的使用(二)

Django中模版的使用

在上一篇博客中介绍了模版的基础知识和模版内置标签的使用,这篇博客主要介绍模版的内置过滤器。过滤器的定义如下:

过滤器:用于HTML模版中,对于渲染过来的数据(即视图传入的数据)进行二次操作使用,比如调整数据的显示格式,字符串设置大小写等等。因为在HTML模版中,无法直接使用Python代码对数据进行处理,所以过滤器实质上就是提供了一种在HTML模版中使用Python函数的方法。

内置过滤器 

在Django默认模版引擎中,常用的内置过滤器包括如下函数:

 

内置过滤器函数 使用方法 说明
add { {value|add:10}} 给value的值加10
date { {value|date:"Y-m-d H:i:s"}} 把日期格式按照规定的格式化显示
cut { {value|cut:"xx"}} 把value字符串中的xx删掉
capfirst { {value|capfirst}} value首字母大写
default { {value|default:"xx"}} value为False的时候使用默认值
default_if_none { {value|default_if_none:"xx"}} value值为空的时候使用默认值
dictsort { {value|dictsort:"key"}} 值为字典的列表,按照key排序
dictsortreversed { {value|dictsortreversed:"key"}} 值为字典的列表,按照key倒序
first { {value|first}} 返回列表中第一个元素
last { {value|last}} 返回列表中最后一个元素
floatformat { {value|floatformat:2}} 保留小数点后两位
join { {value|join:"xx"}} 使用xx将value中的元素拼接起来
length { {value|length}} 返回value的长度
divisibleby { {value|divisibleby:2}} 如果可以被2整除返回True
length_is { {value|length_is:"2"}} 如果长度是2返回True
safe { {value|safe}} 将字符串形式的html代码在前端进行安全展示
random { {value|random}} 随机列表中的一个值
slice { {value|slice:":2"}} 截取前两个字符
slugify { {value|slugify}} value中的字母小写,单词之间使用—分隔
upper { {value|upper}} 字符串大写
urlize { {value|urlize}} 字符串中链接可以点击
wordcount { {value|wordcount}} 字符串中单词数
timeuntil { {value|timeuntil}} 距离当前日期的天数和小时数(未来时间)

下面结合具体的代码,展示内置过滤器的使用方法:

(1)首先我们在视图函数中,定义好需要传入的数据:

Django学习Day5——模版的使用(二)_第1张图片

(2)在模版文件filter.html中,使用内置过滤器对视图传递的数据进行二次处理,如下:

Django学习Day5——模版的使用(二)_第2张图片

(3)启动服务,在浏览器中进行访问,得到经过过滤器处理之后的数据形式:

Django学习Day5——模版的使用(二)_第3张图片

自定义过滤器

虽然Django模版中提供了许多内置过滤器,但是在实际应用开发过程中,针对具体的场景可能我们还需要进行自定义的过滤器的实现,这里介绍如何自定义过滤器。

(1)在应用目录下(app)创建 "templatetags" 文件夹,并在该文件夹下创建__init__.py和test_filter.py文件。

  • __init__.py:表明这是一个Python包
  • test_filter.py:在该文件中实现具体的过滤器函数,如下所示:

Django学习Day5——模版的使用(二)_第4张图片

(2)在模版文件filter.html中通过如下方式进行调用:

  • 加载自定义的过滤器

Django学习Day5——模版的使用(二)_第5张图片

  • 调用的方式和内置过滤器相同

  • 启动服务,在浏览器中进行访问如下:

Django学习Day5——模版的使用(二)_第6张图片

参考资料

https://coding.imooc.com/class/393.html

 

你可能感兴趣的:(Django开发框架,python,django)