django分页
来源:互联网 发布:吉他调弦软件 编辑:程序博客网 时间:2024/06/11 08:18
django 分页
python code
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # Create your views here.
- from django.shortcuts import render_to_response
- from winlog.log_dj.models import Winlog
- from django.core.paginator import Paginator,InvalidPage,EmptyPage,PageNotAnInteg
- er
-
-
- def index(request):
- after_range_num = 5
- before_range_num = 4
- try:
- page=int(request.GET.get('page','1'))
- if page < 1:
- page=1
- except ValueError:
- page=1
-
- winlog_list = Winlog.objects.all().order_by('-id')
- paginator = Paginator(winlog_list, 10)
-
- try:
- winloglist = paginator.page(page)
- except (EmptyPage,InvalidPage,PageNotAnInteger):
- winloglist = paginator.page(1)
- if page >= after_range_num:
- page_range = paginator.page_range[page-after_range_num:page+before_range
- _num]
- else:
- page_range = paginator.page_range[0:int(page)+before_range_num]
-
- return render_to_response('log_dj/index.html', locals())
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # Create your views here.
- from django.shortcuts import render_to_response
- from winlog.log_dj.models import Winlog
- from django.core.paginator import Paginator,InvalidPage,EmptyPage,PageNotAnInteg
- er
- def index(request):
- after_range_num = 5
- before_range_num = 4
- try:
- page=int(request.GET.get('page','1'))
- if page < 1:
- page=1
- except ValueError:
- page=1
- winlog_list = Winlog.objects.all().order_by('-id')
- paginator = Paginator(winlog_list, 10)
- try:
- winloglist = paginator.page(page)
- except (EmptyPage,InvalidPage,PageNotAnInteger):
- winloglist = paginator.page(1)
- if page >= after_range_num:
- page_range = paginator.page_range[page-after_range_num:page+before_range
- _num]
- else:
- page_range = paginator.page_range[0:int(page)+before_range_num]
- return render_to_response('log_dj/index.html', locals())
HTML
{% for winlog in winloglist.object_list %}
{{ winlog.date }}|{{ winlog.time }} <br />
{% endfor %}
{% if winloglist.has_previous %}
<a href="?page={{ winloglist.previous_page_number }}" title="下一页">上一页</a>&
nbsp;
{% endif %}
{% for p in page_range %}
{% ifequal p winloglist.number %}
<span>{{p}}</span>
{% else %}
<a href="?page={{p}}" title="第{{p}}页">{{p}}</a>
{% endifequal %}
{% endfor %}
{% if winloglist.has_next %}
<a href="?page={{ winloglist.next_page_number }}" title="下一页">下一页</a> 
;
{% endif %}
<!-- 第 {{ userList.number }} 页 共 {{ userList.paginator.num_pages }} 页-->
Paginator对象
类Paginator:
class Paginator(object_list,per_page,orphans=0,allow_empty_first_page=True)
必须提供的参数:
object_list:一个列表或元组,元素是django QuerySet或是包含count()或__len__()方法的可切片对象。
per_page:包含在一页中最多的条目数量。
可选参数:
orphans:在最后一页中充许的最少条目数量,默认是0.当最后一页条目数量小于或等于orphans时,这些条目加到本页的上一页中。
allow_empty_first_page:是否充许第一页为空。如设为False且object_list为空,则抛出EmptyPage异常。
方法
Paginator.page(number):返回一个Page对象,序号是始于1.如给出的页号不存在,抛出InvalidPage异常。
属性
Paginator.num_pages:页面总页数
Paginator.page_range:页面数的范围,始于1,如[1,2,3,4]。
InvalidPage异常
如要求的页面无效或页面中没有对象,page()抛出InvalidPage异常。
PageNotAnInterger:当提供给page()的数不是整数是抛出该异常。
EmptyPage:当提供给page()的数是一个有效数,但在该页没有对象存在时,抛出该异常。
Page对象
class Page(object_list,number,paginator):
一般不手工创建Pages,可以使用Paginator.page().
方法:
Page.has_next():如有下一页则返回True
Page.has_previous():如有上一页则返回True
Page.has_other_pages():如有上一页或下一页返回True
Page.next_page_number():返回下一页的页码。不管下一页是否存在都返回。
Page.previous_page_number():返回上一页的页码。不管上一页是否存在都返回。
Page.start_index():返回当前页面中第一个对象的序号,序号始于1.例如:将一个包含5个对象的列表分成每页2个对象,则第二页的start_index()返回3.
Page.end_index():返回当前页面中最一个对象的序号。
属性
Page.object_list:当前页面中所有的对象
Page.number:当前页面的页码,始于1
Page.paginator:页面相关的Pageinator对象。
- django 分页
- django分页
- django 分页
- django 分页
- Django分页
- django分页
- Django 分页
- Django 分页
- django分页
- django 分页
- Django 分页
- Django分页
- Django 分页
- Django 分页 django-pagination
- django分页(原生分页)
- Django 分页插件:django-pagination
- Django 分页插件:django-pagination .
- Django 分页插件:django-pagination .
- ajaxFileUpload()中的success和error中的回调函数不执行的备注
- Android测试
- Java对Excel文件的读取
- mysql查询性能分析(show status,show profile,explain)
- python27 与opencv2.3.1 学习笔记 2012年草稿
- django分页
- C++ 类作用域
- php 解析xml 的四种方法
- 硬件调试问题汇总
- Android Drawable系列——Animation Drawable(动画实现)
- HP大中华区总裁孙振耀退休十五天后九大感言
- IT开发工程师的悲哀
- 下载功能
- Securing Development with PMD