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实现一个转存纯真IP数据库的脚本分享
May 21 Python
python遍历序列enumerate函数浅析
Oct 17 Python
python实现用户管理系统
Jan 10 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
Flask-Mail用法实例分析
Jul 21 Python
python3+selenium自动化测试框架详解
Mar 17 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
详解用python写一个抽奖程序
May 10 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
Python实现随机生成迷宫并自动寻路
Jun 13 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python 魔法函数实例及解析
2019/09/25 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
商务会议邀请函
2014/01/09 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
司法助理专业自荐书
2014/06/13 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电