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处理大数字的方法
May 27 Python
Pandas 同元素多列去重的实例
Jul 03 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
详解Python 解压缩文件
Apr 09 Python
Python3中列表list合并的四种方法
Apr 19 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python通过实例讲解反射机制
Oct 17 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
对python中arange()和linspace()的区别说明
May 03 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 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 mysql数据库操作类
2008/06/04 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python3实现表白神器
2019/04/09 Python
python列表推导式入门学习解析
2019/12/02 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
校班主任推荐信范文
2013/12/03 职场文书
网络管理专业求职信
2014/03/15 职场文书
毕业生欢送会主持词
2014/03/31 职场文书
建设投标担保书
2014/05/13 职场文书
优秀求职信
2014/05/29 职场文书
婚内房产协议书范本
2014/10/02 职场文书
涨价通知怎么写
2015/04/23 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python