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的七种经典排序算法(推荐)
Dec 08 Python
Python使用PyCrypto实现AES加密功能示例
May 22 Python
Python3实现抓取javascript动态生成的html网页功能示例
Aug 22 Python
python实现拓扑排序的基本教程
Mar 11 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
简单了解django缓存方式及配置
Jul 19 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
python+OpenCV实现图像拼接
Mar 05 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
python 如何区分return和yield
Sep 22 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 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
数据库相关问题
2006/10/09 PHP
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
前端性能优化建议
2020/09/17 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
Python解析树及树的遍历
2016/02/03 Python
Python应用库大全总结
2018/05/30 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
高级工程师英文求职信
2014/03/19 职场文书
酒后驾车标语
2014/06/30 职场文书
作风转变心得体会
2014/09/02 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers