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 Web开发框架Django
Jun 30 Python
使用Python的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
Python学生成绩管理系统简洁版
Apr 05 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
pandas表连接 索引上的合并方法
Jun 08 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
Python的Lambda函数用法详解
Sep 03 Python
解析Python3中的Import
Oct 13 Python
Pycharm操作Git及GitHub的步骤详解
Oct 27 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 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_SELF的安全问题
2009/09/05 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python3中eval函数用法使用简介
2019/08/02 Python
Django--权限Permissions的例子
2019/08/28 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
个人评价范文分享
2014/01/11 职场文书
自我介绍演讲稿
2014/01/15 职场文书
孝老爱亲模范事迹
2014/01/24 职场文书
原材料检验岗位职责
2014/03/15 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
导游词400字
2015/02/13 职场文书
离婚承诺书格式范文
2015/05/04 职场文书