码迷,mamicode.com
首页 > 其他好文 > 详细

django实现分页显示

时间:2014-09-05 17:39:11      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   div   代码   sp   log   

django版本 1.4.5

这种方式是官方文档中的方法,应该是在1.4之后都可以以相同的方式实现

默认页面已经建立,只是需要分页。

首先,视图view

 1 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 2 
 3 def listing(request):
 4     contact_list = Contacts.objects.all()
 5     paginator = Paginator(contact_list, 25) # 每页显示25个联系人
 6     page = request.GET.get(’page’)
 7     try:
 8         contacts = paginator.page(page)
 9     except PageNotAnInteger:
10 #如果接收到非数字参数,显示第一页,因为是get传输的,所以可以在地址栏改动
11         contacts = paginator.page(1)
12     except EmptyPage:
13 #页面超出范围,显示最后一页
14         contacts = paginator.page(paginator.num_pages)
15 return render_to_response(’list.html’, {"contacts": contacts})

这里的Contacts是已经有的model,需要import进来

接下来就在html里面加入相关代码就有分页效果了,如下

 1 {% for contact in contacts %}
 2 {# Each "contact" is a Contact model object. #}
 3 {{ contact.full_name|upper }}<br />
 4 ...<!-- 这里是循环输出你的联系人 -->
 5 {% endfor %}
 6 
 7 <!--这里以下是有关分页的代码 -->
 8 <div class="pagination">
 9 <span class="step-links">
10 {% if contacts.has_previous %}
11 <a href="?page={{ contacts.previous_page_number }}">previous</a>
12 {% endif %}
13 <span class="current">
14 Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.
15 </span>
16 {% if contacts.has_next %}
17 <a href="?page={{ contacts.next_page_number }}">next</a>
18 {% endif %}
19 </span>
20 </div>

应该不难理解,结束

有关Paginator对象的内容,参考官方文档……

django实现分页显示

标签:style   blog   color   io   for   div   代码   sp   log   

原文地址:http://www.cnblogs.com/ypx-blackice/p/3958195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!