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中的并发编程实例
Jul 07 Python
在Python的Flask框架中使用日期和时间的教程
Apr 21 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
图文详解python安装Scrapy框架步骤
May 20 Python
python mysql 字段与关键字冲突的解决方式
Mar 02 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
Python可以用来做什么
Nov 23 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
如何使用pdb进行Python调试
Jun 30 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
PHP+DBM的同学录程序(4)
2006/10/09 PHP
PHP 采集心得技巧
2009/05/15 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
php生成图片验证码的方法
2016/04/15 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
使javascript也能包含文件
2006/10/26 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
python创建文件备份的脚本
2018/09/11 Python
python conda操作方法
2019/09/11 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
如何清空Session
2015/02/23 面试题
工作中个人的自我评价
2013/12/31 职场文书
加拿大留学自荐信
2014/01/28 职场文书
质量承诺书怎么写
2014/05/24 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
黑白记忆观后感
2015/06/18 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫