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类定义的讲解
Nov 01 Python
Python实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
Django实现自定义404,500页面教程
Mar 26 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
深入了解Django中间件及其方法
Jul 26 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
Python 中的pygame安装与配置教程详解
Feb 10 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 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分页函数示例代码分享
2014/02/24 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
Python3中的2to3转换工具使用示例
2015/06/12 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
Python tkinter常用操作代码实例
2020/01/03 Python
详解Python 函数参数的拆解
2020/09/02 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
生产部经理岗位职责
2013/12/16 职场文书
简单的辞职信范文
2014/01/18 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
车辆转让协议书
2014/04/15 职场文书
社区健康教育工作方案
2014/06/03 职场文书
爱国主义教育演讲稿
2014/08/26 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
小学毕业感言200字
2015/07/30 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
股东出资协议书
2016/03/21 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技