django的过滤器
过滤器与管道的区别
其实将其与linux下的管道相比而言,两者十分相似。前者的输出变为后者的输入.将前一步的输出输入到下一步进行处理。
例子:
在html页面书写:
{% for book in book_list%}
<li>{{book | upper}}</li>
{% endfor %}
在views.py书写:
def index(request):
t = loader.get_template("index.html")
book_list = ["python","ruby","php"]
user = {"name":"tom","age":0,"sex":"male"}
c = Context({"book_list": book_list})
return HttpResponse(t.render(c))
效果如图:
如何自定义过滤器
- 现在文件夹里建立templatags的文件夹
- 在建立起init.py
- 在建立相应的过滤器percent.py来进行过滤
例子:我要在每个输出的字符串后面加入%
from django import template
register = template.Library()//引入过滤器的图书馆
def percent (value):
return value+"%"
register.filter(percent)//注册你自己定义的过滤器
在html文件当中输入
1.首先导入你写好的过滤器
{% load percent%}
2.加入过滤器
{% for book in book_list%}
{% load percent%}
<li>{{book | upper| percent}}</li>
{% endfor %}
效果如下: