PythonWeb开发Django框架学习(六)Tempalte过滤器
来源:互联网 发布:网络红人菁菁淘宝店 编辑:程序博客网 时间:2024/06/05 16:59
上一节说到了Templates的标签,这一次说一下为了更好的展示数据所使用的过滤器,其中Django自带有很多的过滤器,我这里只是举几个例子而已,还有就是可以自己自定义一些过滤器都会讲到,但并不详细,还请自己探索。
我们首先来说一下什么是过滤器,其实就相当于Python中的管道一样,执行管道之后的方法返回新的数据,只不过这不是在Python中执行而是在模板中执行而已
下面就看一个例子吧:
1.还是写一下views.py文件:
from __future__ import unicode_literalsfrom django.http import HttpResponsefrom django.shortcuts import renderfrom django.template import loader,Context,Templatefrom django.shortcuts import render_to_responseimport datetime# Create your views here.class Person(object):def __init__(self,name,age,sex):self.name = nameself.age = ageself.sex = sexdef say(self):return "My name is "+ self.name#可以后台网前台传递数据的三种方式def index(request): user = {'name': 'zhao', 'age': 23, 'sex': 'male'} book_list = ['Python', 'Java', 'PHP'] person = Person('jack', 22, 'female') ''' #这里的注释是说明在没有使用过滤器使得变量后的字母都变成大写应该如何,就是得在Python中编写代码,这显然不是我们想要的简单的方式 book_temp = [] for book in book_list: book_temp.append(book.upper()) ''' return render_to_response('test.html', {'user': user, 'person': person, 'book': book_list,'today':datetime.datetime.now()})
2.urls.py的配置我就不再重复啦,不会的看之前几篇文章吧
3.重点就是test.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>模板过滤器</title></head><body>{% for b in book reversed%} {# upper 将字符串大写输出,当然你还可以试一下其他的,lower将字符串小写输出 capfirst大写第一个字母输出,当然还可以都通过管道一起使用 #} <li>{{ b | upper}}</li>{% endfor %}{# 使用过滤器进行日期的格式化处理 #}<h2>普通输出:today is {{ today }}</h2><h2>格式输出:today is {{ today | date:"Y-m-d"}}</h2></body></html>4.看一下执行效果吧:
5.上面就说到啦我们还可以自己定义过滤器,那应该怎么做呢,首先需要在APP目录下新建一个Python包文件就是新建一个文件夹templatetags,里面在存放一个空的__init__.py文件,
在这个包里面存放的py文件就是我们的过滤器文件啦,例如在其中新建一个percent.py文件,进行编辑:
from django import templateregister = template.Library()@register.filterdef percent(value): return value+"%"这个过滤器很简单就是在每个输出后面加上一个%而已
那我们就来试验一下吧,再编辑一下test.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>模板过滤器</title></head><body>{% for b in book reversed%} {# upper 将字符串大写输出,当然你还可以试一下其他的,lower将字符串小写输出 capfirst大写第一个字母输出,当然还可以都通过管道一起使用 #} <li>{{ b | upper}}</li>{% endfor %}<h2>普通输出:today is {{ today }}</h2><h2>格式输出:today is {{ today | date:"Y-m-d"}}</h2><hr><h3>使用自定义过滤器</h3>{% load percent %}{# 使用自定义的过滤器需要先使用load加载进来 #}<h2>格式输出:today is {{ today | date:"Y-m-d" |percent}}</h2></body></html>ok,我们就来测试一下吧:
这里就把过滤器说完了,具体的其他过滤器自己探究吧
阅读全文
0 0
- PythonWeb开发Django框架学习(六)Tempalte过滤器
- PythonWeb开发Django框架学习(五)Template标签
- PythonWeb开发Django框架学习(七)URL的配置
- PythonWeb开发Django框架学习(十二)基础总结
- PythonWeb开发Django框架学习(十一)使用框架自带Admin管理数据库数据
- PythonWeb开发Django框架学习(八)Model与数据库初步
- PythonWeb开发Django框架学习(九)使用Model类操作数据库数据
- PythonWeb开发Django框架学习(十)数据库一对多和多对多操作
- PythonWeb 开发Django框架(一) 环境搭建
- PythonWeb开发Django框架(三)模板Templates初步
- PythonWeb开发Django11框架学习(四)Template进一步
- pythonWeb -- Django开发- Admin
- pythonWeb -- Django开发-创建一个Django项目
- PythonWeb框架Django11学习(二) 初步HelloWorld
- win+pycharm+django+mysql开发(win系统pythonweb开发)(二)
- win+pycharm+django+mysql开发(win系统pythonweb开发)(三)
- python学习教程(六)Django框架的使用
- python web框架Django学习(六)数据库
- #HDU4372#Count the Buildings(第一类Stirling数经典)
- 顺序循环队列的实现(c语言)
- HTML5 总结
- 设计模式
- Linux类别开篇
- PythonWeb开发Django框架学习(六)Tempalte过滤器
- 棋盘问题
- 【原创】用拓展欧几里得解不定方程 ※POJ-1061-青蛙的约会
- KFC宅急送点餐系统开发 & MFC动态树形控件使用
- 套接字实现Udp服务器
- Struts2系列之HelloAction
- 预估表和索引空间容量的方法
- Python 2.x与Python3.x中inpu的区别
- Linux下VI/VIM提示没有权限保存时候的解决方法