Python Django模板之模板过滤器与自定义模板过滤器示例


Posted in Python onOctober 18, 2019

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

模板过滤器

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

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

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

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

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

自定义过滤器。

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

例如:

{{ book.btitle|length }} # 返回字符串或列表的长度

{{ book.bpub_date|date:'Y年-m月-d日' }} # 格式化日期格式

{{ content|default:'hello' }} # 为不存在的变量指定默认值。

自定义模板过滤器

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

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

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

<!DOCTYPE html>
<html lang="en">
{% load filters %} {# load标签加载自定义过滤器的py文件。和templatetags/filters.py 的py文件名一致。 #}
<head>
  <meta charset="UTF-8">
  <title>模板过滤器</title>
</head>
<body>
<ul>
  {# {% if book.id|mod %}#}  {# 使用自定义的过滤器。需要先load自定义过滤器的py文件 #}
  {% if book.id|mod_val:3 %}  {# 使用自定义的过滤器 #}
    。。。
  {% else %}
    。。。
  {% endif %}
</ul>
</body>
</html>

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

Python 相关文章推荐
python创建只读属性对象的方法(ReadOnlyObject)
Feb 10 Python
Python中的类学习笔记
Sep 23 Python
Python导入模块时遇到的错误分析
Aug 30 Python
Python利用turtle库绘制彩虹代码示例
Dec 20 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
Python处理CSV与List的转换方法
Apr 19 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
对pandas处理json数据的方法详解
Feb 08 Python
Python3实现的旋转矩阵图像算法示例
Apr 03 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
python+OpenCV实现图像拼接
Mar 05 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 #Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 #Python
python调用Matplotlib绘制分布点图
Oct 18 #Python
Python 异常处理Ⅳ过程图解
Oct 18 #Python
python库matplotlib绘制坐标图
Oct 18 #Python
python实现WebSocket服务端过程解析
Oct 18 #Python
django实现支付宝支付实例讲解
Oct 17 #Python
You might like
php strcmp使用说明
2010/04/22 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python实现的科学计算器功能示例
2017/08/04 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
python实现键盘控制鼠标移动
2020/11/27 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
《母鸡》教学反思
2014/02/25 职场文书
材料员岗位职责
2014/03/13 职场文书
法律进社区实施方案
2014/03/21 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
大学生学习计划书
2014/09/15 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
数学复习课教学反思
2016/02/18 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
php修改word的实例方法
2021/11/17 PHP