首页 > 代码库 > django实现分页显示
django实现分页显示
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实现分页显示
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。