Django自定义过滤器定义与用法示例


Posted in Python onMarch 22, 2018

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

一、自定义过滤器的介绍

前面我们就介绍过过滤器其实就是一个函数,把要过来的字段传递到一个函数内,进行加工处理,返回一个新的值展现在页面中,在实际开发中系统自带的过滤器有时候不能满足我们的需求的时候就要自定义

二、Django中自定义过滤器有两种方式

1、在组件(App)中的templatetags创建一个单独的py文件
2、单独创建一个组件(App)用来存放项目中所有的自定义过滤器

三、在项目中的组件中创建自定义过滤器

1、只能在安装的组件(App)中
2、只能在组件(App)下的templatetags包内创建
3、必须使用修饰器@register.filter
4、定义一个方法,传递值进去进行处理,返回新的值
5、创建自定义过滤器

①. 在templatetags包下创建一个poll.py的文件

from django import template
register = template.Library()
@register.filter
def mycut(value,args):
  return value.replace(args,"")

6、 使用自定义过滤器

①. 先引入文件{% load poll %}

②. 使用

{% load poll %}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <p>{{ msg | mycut:' '}}</p>
</body>
</html>

四、可以自定义一个组件(App)[由于不需要太多的文件,就手动创建一个]

1、手动创建一个包
2、在包中创建一个templatetags的包
3、将创建的这个包在settings.py中注入
4、在templatetags中创建文件及函数
5、过滤器的使用(跟上面一样的)

五、补充说明

如果是对字符串操作的一般都会引入@stringfilter修饰符

from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
def mycut(value,args):
  return value.replace(args,"")
@register.filter
@stringfilter
def mylower(value):
  return value.lower()

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

Python 相关文章推荐
Python中__init__和__new__的区别详解
Jul 09 Python
pygame学习笔记(5):游戏精灵
Apr 15 Python
Python类的定义、继承及类对象使用方法简明教程
May 08 Python
Python构建XML树结构的方法示例
Jun 30 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
PyQt5每天必学之进度条效果
Apr 19 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
python线程里哪种模块比较适合
Aug 02 Python
Python用Jira库来操作Jira
Dec 28 Python
python3操作redis实现List列表实例
Aug 04 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 #Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 #Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 #Python
python实现将excel文件转化成CSV格式
Mar 22 #Python
python 对象和json互相转换方法
Mar 22 #Python
利用python将json数据转换为csv格式的方法
Mar 22 #Python
解决python3中解压zip文件是文件名乱码的问题
Mar 22 #Python
You might like
php 执行系统命令的方法
2009/07/07 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
openCV提取图像中的矩形区域
2020/07/21 Python
python 实现IP子网计算
2021/02/18 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
机械工程师的岗位职责
2013/11/17 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
初三开学计划书
2014/04/27 职场文书
李培根演讲稿
2014/05/22 职场文书
英语求职信范文
2014/05/23 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
详解Redis瘦身指南
2021/05/26 Redis
一条 SQL 语句执行过程
2022/03/17 MySQL