django 创建过滤器的实例详解


Posted in Python onAugust 14, 2017

django 创建过滤器

一、需求来源:

假如有一个模板文件有一个字符串变量,这个字符串变量中不能有任何的空格,而恰恰这个模板被很多个视图函数多调用,那么你每次在视图函数中穿这个字符串变量的时候,都要进行字符串的处理,这相对来说是比较麻烦的,django提供了一种叫做过滤器的方式,可以在模板中进行统一处理。

二、自定义模板库准备工作:

创建一个模板库分两步走:

第一,决定模板库应该放在哪里。你可以单独通过manage.py startapp创建一个app专门用来存放自定义的模板库;也可以放在项目中的任何一个app下面。这里推荐第一种方式,因为第一种方式写完后,可以移植到其他项目中使用。不用重复编写。但是,无论你采用哪种方式,你都要把存放你模板库的app添加到settings.py的INSTALLED_APPS中!!!

第二,在以上你选择的包下,创建一个名叫templatetags目录,这个目录应当和models.py和views.py处于同一层次。然后在templatetags中创建两个空文件:一个是__init__.py表示这不是一个普通的文件夹,这是一个Python代码包,另外一个是你用来存放模板库的文件(比如:my_template.py)。然后在你需要用到这个库文件的模板文件中,使用{% load my_template.py %}进行导入,重要的事情再说一遍,你必须把这个my_template.py所处的app添加到settings.py的INSTALLED_APPS中才有用。

三、创建自定义过滤器:

过滤器实际上就是一个带有一个或者两个参数的python函数:

  • 需要被过滤的变量
  • 传递进来的值,该值可以为空

例如我们创建一个将变量的所有空格替换成某个值的过滤器:

def removespace(value,arg):
  return value.replace(' ',arg)

然后注册近模板中,使用以下代码进行注册:

from django import template

register = template.Library()

@register.filter
def removespace(value,arg):
  return value.replace('',arg)

那么你在使用的时候,只要在模板中使用一下代码进行使用:

{{ variable|removespace:"a" }}

那么variable这个变量中的所有空格都会被替换成a。

以上就是django 创建过滤器的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python中使用不同编码读写txt文件详解
May 28 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
Django为窗体加上防机器人的验证码功能过程解析
Aug 14 Python
利用Python小工具实现3秒钟将视频转换为音频
Oct 29 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 Python
关于python中模块和重载的问题
Nov 02 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 Python
Python first-order-model实现让照片动起来
Jun 25 Python
django创建自定义模板处理器的实例详解
Aug 14 #Python
Python微信库:itchat的用法详解
Aug 14 #Python
Python实现的概率分布运算操作示例
Aug 14 #Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 #Python
python的mysqldb安装步骤详解
Aug 14 #Python
python制作小说爬虫实录
Aug 14 #Python
python安装Scrapy图文教程
Aug 14 #Python
You might like
GD输出汉字的函数的分析
2006/10/09 PHP
在PHP中使用灵巧的体系结构
2006/10/09 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
js中的this关键字详解
2013/09/25 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python版大富翁源代码分享
2018/11/19 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
python爬虫 requests-html的使用
2020/11/30 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
高中自我评价分享
2013/12/05 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
平安校园建设方案
2014/05/02 职场文书
医院搬迁方案
2014/06/14 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
学生会个人总结范文
2015/02/15 职场文书
合作合同协议书
2016/03/21 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python