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实现baidu hi自动登录的代码
Feb 10 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
python中的变量如何开辟内存
Jun 26 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
opencv+python实现均值滤波
Feb 19 Python
python实现横向拼接图片
Mar 23 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
Pandas的数据过滤实现
Jan 15 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
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
PHP 图像尺寸调整代码
2010/05/26 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
原生js实现购物车功能
2020/09/23 Javascript
Python简单生成8位随机密码的方法
2017/05/24 Python
python中的常量和变量代码详解
2018/07/25 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Python实现ATM系统
2020/02/17 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫