Django中自定义过滤器的使用
我在这里做的是: 从数据库查出id递增的一些信息,展示在前台。
编写一个过滤器判断查出数据的id是偶数的返回True 奇数返回False
1 创建项目,创建应用,注册应用,配置settings.py文件,配置urls映射,编写views试图,编写模板templates,编写models模块
切记 注册应用。 很多伙伴找不到自己定义的过滤器,是因为忘记注册应用!
2 创建过滤器的目录:
实际上,在项目目录或者应用目录下创建都是可以的,创建一个名为templatetags的python模块

在我这里,booktest是一个应用,templatetags 是存放过滤器的模块,,模块和目录的区别是 模块里面必须有__init__.py,告诉python这是可以import的东西
在templatetags模块里,建立一个py文件,写我们的自定义过滤器,文件名称可以自己定,这里我用filters.py
3 过滤器的编写:
from django.template import Library register = Library() #一个偶数为真的过滤器
@register.filter # @register.filter(name='odd') 过滤器里面有很多选项
7 def odd(num ):
return num%2==0
过滤器必须用Library().filter 来进行装饰, name表示过滤器的名字,也可以不指定,函数名就是过滤的名字
装饰后的函数,才能当作过滤器来使用
4 模板文件引入过滤器和使用
<!DOCTYPE html>
<html lang="en"> {# 必须用这一句去引用过滤器 filters是我过滤器所在py文件的名字 #}
{% load filters %} <head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.red{
background-color: red;
}
.gold{
background-color: gold;
}
</style>
</head>
<body>
<ul>
{% for book in books %}
{# 使用过滤器 #}
{% if book.id|odd %}
<li class="red">
{{ book.id }}----{{ book.btitle }}----{{ book.bpub_date|date:'Y-m-d' }}
</li>
{% else %}
<li class="gold" >
{{ book.id }}----{{ book.btitle }}----{{ book.bpub_date|date:'Y-m-d' }}
</li>
{% endif %}
{% endfor %} </ul> <ul>
{% for hero in heros %}
<li >{{ hero.id }}----{{ hero.hname }}</li>
{% endfor %} </ul> </body>
</html>
在模板中必须用{%load name%} 来引入我们的过滤器函数所在的py文件,name是py文件的名字 这里我的事filters
之后 如果使用过滤器那么就直接 变量|过滤器 就可以了。
{# 必须用这一句去引用过滤器 filters是我过滤器所在py文件的名字 #}
{% load filters %}
{# 使用过滤器 #}
{% if book.id|odd %}
<li class="red">
{{ book.id }}----{{ book.btitle }}----{{ book.bpub_date|date:'Y-m-d' }}
</li>
{% else %}
我做的是 id是基数和偶数分别改变不同的背景色。
Django中自定义过滤器的使用的更多相关文章
- django 中自定义过滤器
多参数过滤器
- Django 05 自定义过滤器、自定义标签
Django 05 自定义过滤器.自定义标签 一.自定义过滤器 #1.在项目目录下创建一个python package包 取名为common(这个名字可以自定义) #2.在common目录下创建一个t ...
- .net中自定义过滤器对Response内容进行处理
原文:http://www.cnblogs.com/zgqys1980/archive/2008/09/02/1281895.html 代码DEMO:http://files.cnblogs.com/ ...
- django中自定义标签和过滤器
想要实现自定义标签和过滤器需要进行准备工作: 准备(必需)工作: 1 在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为polls的app下创建了一个tem ...
- Django中的过滤器
Django 过滤器 过滤器 描述 示例 upper 以大写方式输出 {{ user.name | upper }} add 给value加上一个数值 {{ user.age | add:”5” ...
- Django——5 自定义过滤器及标签
Django 自定义过滤器 自定义标签 简单标签 包含标签 自定义过滤器 自定义过滤器就是一个带有一个或两个参数的Python 函数: - (输入的)变量的值 —— 不一定是字符串形式. - 参数的值 ...
- Django入门--自定义过滤器与标签
---恢复内容开始--- 为了让Django找到自定义的模板过滤器和模板标签,需要进行文件路径配置,配置方式分为APP目录下配置和项目路径下配置两种方式: 1.在APP目录下配置:针对某个应用特定的自 ...
- django 组件 自定义过滤器 自定义标签 静态文件配置
组件 将一些功能标签写在一个html文件里,这个文件作为一个组件,如果那个文件需要就直接拿过来使用即可: 这是title.html文件,写了一个导航栏,作为一个公用的组件 <div style= ...
- Django(自定义过滤器和自定义标签)
模版是一个用django模版语言标记过的python字符串.模版可以包含模版标签和变量. 模版标签是在一个模版里起作用的标记.比如,一个模版标签可以产生控制结构的内容(if或者for),可以获取数据库 ...
随机推荐
- ie8兼容圆角
ie8兼容圆角 PIE.HTC下载地址:http://css3pie.com/ 兼容ie8 代码如下: <!DOCTYPE html> <html> <head> ...
- jQuery对于动态生成的元素绑定无效的问题~~
问题:很多时候发现,对动态生成的元素绑定click事件是无效的- 原因:直接绑定到动态生成的元素是无效的,是因为Jquery扫描文档找出所有的$(‘’)元素,并把函数绑定到每个元素的click事件上, ...
- delphi 数组复制利用CopyMemory 最为完美
在各网站的文章里面,见复制数据的方法中,有move的,有system.copy的,而要实际应用中,这两种方法,并不是很完美,会遇到一些问题,比如copy在记录里面的复制时,编译都过不去,而CopyMe ...
- 关于Unity的协程
协程 认识协程 //协程不是多线程:是一段在主程序之外执行的代码 //协程不受生命周影响 //作用:能够口直代码在特定的时间执行. //1,延时操作 //2,等待某代码执行结束之后执行 /* 特点:1 ...
- Linux源码-等待队列注释
等待队列 Linux中了等待队列的毒,代码中充斥着等待队列.不信你翻翻代码. 等待队列的唤醒我们这里叫激活.免得和线程唤醒混淆. 数据结构 头结点wait_queue_head_t的结构 struct ...
- LeNet-5识别MINIST数据集
LeNet-5 LeNet于90年代被提出,鉴于当时的计算能力和内存容量,直到2010年才能真正的实施这样的大规模计算.LeNet-5是LeCun于1998年提出的深度神经网络结构,总共包含7层网络( ...
- java排序算法(三):堆排序
java排序算法(三)堆排序 堆积排序(HeapSort)是指利用堆积树这种结构所设计的排序算法,可以利用数组的特点快速定位指定索引的元素.堆排序是不稳定的排序方法.辅助空间为O(1).最坏时间复杂度 ...
- javaScript设计模式 -- 灵活的javaScript语言
因为好长时间的懒惰和懈怠,好久没有更新文章了,从现在开始我会按时更新一些自己总结的一些知识,和研究的东西,希望能让大家从我这里学到一点点的知识. 本文参考了张荣铭的javascript设计模式一书,算 ...
- JavaWeb学习笔记九 过滤器、注解
过滤器Filter filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理. 步骤: 编写一个过滤器的类实现Filter接口 实现接口中尚未实现的 ...
- java虚拟机的内存分配与回收机制
分为4个方面来介绍内存分配与回收,分别是内存是如何分配的.哪些内存需要回收.在什么情况下执行回收.如何监控和优化GC机制. java GC(Garbage Collction)垃圾回收机制,是java ...