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网络编程之文件下载实例分析
May 20 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
python实现搜索本地文件信息写入文件的方法
Feb 22 Python
python subprocess 杀掉全部派生的子进程方法
Jan 16 Python
Python中matplotlib中文乱码解决办法
May 12 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
python spyder中读取txt为图片的方法
Apr 27 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
在Python中append以及extend返回None的例子
Jul 20 Python
使用Python实现牛顿法求极值
Feb 10 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 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输出不同的心形图案
2016/04/22 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
2021/02/07 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
Python实现的单向循环链表功能示例
2017/11/10 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
机关单位动员会主持词
2014/03/20 职场文书
销售人员工作自我评价
2014/09/21 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang