我在这里做的是: 从数据库查出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中自定义过滤器的使用的更多相关文章

  1. django 中自定义过滤器

    多参数过滤器

  2. Django 05 自定义过滤器、自定义标签

    Django 05 自定义过滤器.自定义标签 一.自定义过滤器 #1.在项目目录下创建一个python package包 取名为common(这个名字可以自定义) #2.在common目录下创建一个t ...

  3. .net中自定义过滤器对Response内容进行处理

    原文:http://www.cnblogs.com/zgqys1980/archive/2008/09/02/1281895.html 代码DEMO:http://files.cnblogs.com/ ...

  4. django中自定义标签和过滤器

    想要实现自定义标签和过滤器需要进行准备工作: 准备(必需)工作: 1  在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为polls的app下创建了一个tem ...

  5. Django中的过滤器

    Django 过滤器   过滤器 描述 示例 upper 以大写方式输出 {{ user.name | upper }} add 给value加上一个数值 {{ user.age | add:”5” ...

  6. Django——5 自定义过滤器及标签

    Django 自定义过滤器 自定义标签 简单标签 包含标签 自定义过滤器 自定义过滤器就是一个带有一个或两个参数的Python 函数: - (输入的)变量的值 —— 不一定是字符串形式. - 参数的值 ...

  7. Django入门--自定义过滤器与标签

    ---恢复内容开始--- 为了让Django找到自定义的模板过滤器和模板标签,需要进行文件路径配置,配置方式分为APP目录下配置和项目路径下配置两种方式: 1.在APP目录下配置:针对某个应用特定的自 ...

  8. django 组件 自定义过滤器 自定义标签 静态文件配置

    组件 将一些功能标签写在一个html文件里,这个文件作为一个组件,如果那个文件需要就直接拿过来使用即可: 这是title.html文件,写了一个导航栏,作为一个公用的组件 <div style= ...

  9. Django(自定义过滤器和自定义标签)

    模版是一个用django模版语言标记过的python字符串.模版可以包含模版标签和变量. 模版标签是在一个模版里起作用的标记.比如,一个模版标签可以产生控制结构的内容(if或者for),可以获取数据库 ...

随机推荐

  1. 关于JDK和eclipse的安装和汉化

    参考网址:http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html http://titanseason.iteye.com/blo ...

  2. leaflet渲染mapbox gl的矢量数据

    准备条件 1.mapbox-gl.js mapbox-gl.css 2.leaflet-mapbox-gl.js https://github.com/mapbox/mapbox-gl-leaflet ...

  3. Spark Streaming高级特性在NDCG计算实践

    从storm到spark streaming,再到flink,流式计算得到长足发展, 依托于spark平台的spark streaming走出了一条自己的路,其借鉴了spark批处理架构,通过批处理方 ...

  4. C语言第二次博客作业---分支结构

    一,PTA实验作业 题目1.计算分段函数 本题目要求计算下列分段函数f(x)的值: 1.实验代码 double x,result; scanf("%lf",&x); if( ...

  5. nodejs批量导入数据eventproxy(回调函数嵌套解决方案)使用实例

    回调函数嵌套解决方案——eventProxy API地址:https://github.com/JacksonTian/eventproxy 1.安装eventproxy 执行npm install ...

  6. GO语言初探

    1.GO使用UTF-8编码,纯Unicode文本编写. 2.$ go verson (windows) 3.windows下,需要设置go语言的环境变量,新建一个名为 GOROOT的变量,指向go的具 ...

  7. Java CAS机制详解

    CAS目的: 在多线程中为了保持数据的准确性,避免多个线程同时操作某个变量,很多情况下利用关键字synchronized实现同步锁,使用synchronized关键字修可以使操作的线程排队等待运行,可 ...

  8. OpenCascade Law Function

    OpenCascade Law Function eryar@163.com 1.Introduction 在OpenCASCADE的TKGeomAlgo Toolkit中提供了一个Law Packa ...

  9. Maven-11: 从命令行调用插件

    mvn -h显示mvn命令帮助: usage: mvn [options] [<goal(s)>] [<phase(s)>] Options: -am,--also-make ...

  10. 笔记:Maven 仓库及配置详解

    本地创建默认路径在 用户目录\.m2\repository,如果需要自定义本地创建目录地址,可以编辑文件 用户目录\.m2\settings.xml(文件不存在,则需要从Maven安装目录的Conf目 ...