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函数帮助查询小工具
Mar 13 Python
python3音乐播放器简单实现代码
Apr 20 Python
关于Python数据结构中字典的心得
Dec 04 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 Python
Python控制台输出俄罗斯方块的方法实例
Apr 17 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中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
js实现表格筛选功能
2017/01/18 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
python cookie反爬处理的实现
2020/11/01 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
优秀毕业生求职推荐信范文
2013/11/21 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
团队队名口号大全
2014/06/06 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
公司周年庆典致辞
2015/07/30 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript