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中为feedparser设置超时时间避免堵塞
Sep 28 Python
Python简明入门教程
Aug 04 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
Python语言生成水仙花数代码示例
Dec 18 Python
python中的迭代和可迭代对象代码示例
Dec 27 Python
简单实现python数独游戏
Mar 30 Python
详解Python:面向对象编程
Apr 10 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
python实现交并比IOU教程
Apr 16 Python
Python闭包及装饰器运行原理解析
Jun 17 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 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 获取全局变量的代码
2011/04/21 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
10条php编程小技巧
2015/07/07 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
jquery动态添加option示例
2013/12/30 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
JSON相关知识汇总
2015/07/03 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
python用for循环求和的方法总结
2019/07/08 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
精伦电子Java笔试题
2013/01/16 面试题
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年稽查工作总结
2014/12/20 职场文书
师德承诺书
2015/01/20 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
SpringBoot整合Minio文件存储
2022/04/03 Java/Android