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)首先我们在视图函数中,定义好需要传入的数据:

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

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

自定义过滤器

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

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

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

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

  • 加载自定义的过滤器

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

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

参考资料

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值