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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
python对url格式解析的方法
May 13 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
Python元组及文件核心对象类型详解
Feb 11 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
Python使用type动态创建类操作示例
Feb 29 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
Python Map 函数的使用
Aug 28 Python
python文件目录操作之os模块
May 08 Python
Python - 10行代码集2000张美女图
May 23 Python
Python Django / Flask如何使用Elasticsearch
Apr 19 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
js中apply方法的使用详细解析
2013/11/04 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
pycharm永久激活超详细教程
2020/10/29 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
小学生学习雷锋倡议书
2014/05/15 职场文书
食品安全处置方案
2014/06/14 职场文书
代领毕业证委托书
2014/08/02 职场文书
二人合伙经营协议书
2014/09/13 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
教师岗位职责范本
2015/04/02 职场文书
企业培训简报范文
2015/07/20 职场文书