经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
Python Django模板之模板过滤器与自定义模板过滤器示例
来源:jb51  时间:2019/10/18 14:01:46  对本文有异议

本文实例讲述了Python Django模板之模板过滤器与自定义模板过滤器。分享给大家供大家参考,具体如下:

模板过滤器

过滤器用于对模板变量进行操作。

date:改变日期的显示格式。

length:求长度。字符串,列表。

default:设置模板变量的默认值。

格式:模板变量|过滤器:参数

自定义过滤器。

自定义的过滤器函数,至少有一个参数,最多两个

例如:

  1. {{ book.btitle|length }} # 返回字符串或列表的长度
  2.  
  3. {{ book.bpub_date|date:'Y年-m月-d日' }} # 格式化日期格式
  4.  
  5. {{ content|default:'hello' }} # 为不存在的变量指定默认值。
  6.  

自定义模板过滤器

应用名/templatetags/filters.py(自定义过滤器函数,templatetags文件名固定):

  1. # 自定义过滤器
  2. # 过滤器其实就是python函数
  3. from django.template import Library
  4. # 创建一个Library类的对象
  5. register = Library()
  6. # 自定义的过滤器函数,至少有一个参数,最多两个。(第一个参数就是要过滤的模板变量)
  7. @register.filter
  8. def mod(num):
  9. '''判断num是否为偶数'''
  10. return num%2 == 0
  11. @register.filter
  12. def mod_val(num, val):
  13. '''判断num是否能被val整除'''
  14. return num%val == 0
  15.  

demo.html(模板文件,使用自定义过滤器):

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. {% load filters %} {# load标签加载自定义过滤器的py文件。和templatetags/filters.py 的py文件名一致。 #}
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>模板过滤器</title>
  7. </head>
  8. <body>
  9. <ul>
  10. {# {% if book.id|mod %}#} {# 使用自定义的过滤器。需要先load自定义过滤器的py文件 #}
  11. {% if book.id|mod_val:3 %} {# 使用自定义的过滤器 #}
  12. 。。。
  13. {% else %}
  14. 。。。
  15. {% endif %}
  16. </ul>
  17. </body>
  18. </html>
  19.  

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号