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 判断自定义对象类型
Mar 21 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
使用python生成目录树
Mar 29 Python
Python numpy 点数组去重的实例
Apr 18 Python
Python检测网络延迟的代码
May 15 Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
PyQt QCombobox设置行高的方法
Jun 20 Python
Python传递参数的多种方式(小结)
Sep 18 Python
python二元表达式用法
Dec 04 Python
python一些性能分析的技巧
Aug 30 Python
PyTorch 如何检查模型梯度是否可导
Jun 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如何解决网站大流量与高并发的问题
2011/06/25 PHP
php阳历转农历优化版
2016/08/08 PHP
Valerio 发布了 Mootools
2006/09/23 Javascript
js获取div高度的代码
2008/08/09 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
注塑工厂厂长岗位职责
2013/12/02 职场文书
施工安全协议书
2013/12/11 职场文书
销售经理工作职责
2014/02/03 职场文书
保管员岗位职责
2015/02/14 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
理想国读书笔记
2015/06/25 职场文书
2016新年致辞
2015/08/01 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书