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 + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
Jul 14 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
python发送邮件脚本
May 22 Python
python查看模块,对象的函数方法
Oct 16 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
Python中itertools库的四个函数介绍
Apr 06 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
5.PHP的其他功能
2006/10/09 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
可以支持多中格式的JS键盘
2007/05/02 Javascript
jQuery入门知识简介
2010/03/04 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
医务人员自我评价
2014/01/26 职场文书
商业融资计划书
2014/04/29 职场文书
大雁塔导游词
2015/02/04 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
金榜题名主持词
2015/07/02 职场文书
学雷锋感言
2015/08/03 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android