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实现全局变量的两个解决方法
Jul 03 Python
将Python的Django框架与认证系统整合的方法
Jul 24 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
python把转列表为集合的方法
Jun 28 Python
Python 使用list和tuple+条件判断详解
Jul 30 Python
Python实现Singleton模式的方式详解
Aug 08 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
Python装饰器用法与知识点小结
Mar 09 Python
Python+PyQt5实现灭霸响指功能
May 25 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
详解python对象之间的交互
Sep 29 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 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解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
php中curl使用指南
2015/02/05 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
php适配器模式简单应用示例
2019/10/23 PHP
js DOM模型操作
2009/12/28 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
javascript制作2048游戏
2015/03/30 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
python开发中range()函数用法实例分析
2015/11/12 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
django_orm查询性能优化方法
2018/08/20 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
C#如何进行LDAP用户校验
2012/11/21 面试题
什么时候用assert
2015/05/08 面试题
一年级班主任寄语
2014/01/19 职场文书
公司应聘求职信
2014/06/21 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
销售人员工作自我评价
2014/09/21 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
2016年母亲节寄语
2015/12/04 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
四十九个javascript小知识实用技巧
2021/11/20 Javascript
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers