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求crc32值的方法
Oct 05 Python
介绍Python中的一些高级编程技巧
Apr 02 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
Django ORM 查询管理器源码解析
Aug 05 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
Python chardet库识别编码原理解析
Feb 18 Python
python deque模块简单使用代码实例
Mar 12 Python
详解pandas赋值失败问题解决
Nov 29 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
Python anaconda安装库命令详解
Oct 16 Python
Python学习之时间包使用教程详解
Mar 21 Python
Python利用FlashText算法实现替换字符串
Mar 31 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下拉选项的批量操作的实现代码
2013/10/14 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
原生JS实现网络彩票投注效果
2016/09/25 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
python之列表推导式的用法
2019/11/29 Python
Python运行异常管理解决方案
2020/03/09 Python
如何基于python实现不邻接植花
2020/05/01 Python
python3.7添加dlib模块的方法
2020/07/01 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
运动会方队口号
2014/06/07 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
职工年度考核评语
2014/12/31 职场文书
上课说话检讨书
2015/01/27 职场文书
教育教学工作反思
2016/02/24 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android