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写的一个文本编辑器
Jan 23 Python
Python字符串、元组、列表、字典互相转换的方法
Jan 23 Python
Django实现的自定义访问日志模块示例
Jun 23 Python
Python实现图片转字符画的示例代码
Aug 21 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
python设置随机种子实例讲解
Sep 12 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
Python 类的魔法属性用法实例分析
Nov 21 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Apr 04 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
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
Python中的rjust()方法使用详解
2015/05/19 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
django用户登录和注销的实现方法
2018/07/16 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
python中sys模块是做什么用的
2020/08/16 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
环境科学专业个人求职信
2013/12/15 职场文书
会计应聘求职信范文
2013/12/17 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
房地产推广策划方案
2014/05/19 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android