今天用django-pagination实现分页,鼓捣了半天以失败告终,个人觉得是django-pagination最新版本和django不兼容,按照官方文档的案例来也不行。
最终用paginator成功实现分页,paginator为django自带的组件,不需要额外安装。
修改blog/views.py
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import render blogs = mySql.queryBlog() paginator = Paginator(blogs, 2)# Show 2 blogs per page page = req.GET.get(‘page‘) try: currentPageBlogs = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. currentPageBlogs = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. currentPageBlogs = paginator.page(paginator.num_pages) return render(req, ‘checkblog.html‘, {‘blogs‘: currentPageBlogs})
修改checkblog.html
{% for blog in blogs %} <p> <a href={{blog.1}} >{{blog.2}}</a> <span class="blogTime">{{blog.4}}</span> </p> {% endfor %} <div class="pagination"> <span class="step-links"> {% if blogs.has_previous %} <a href="?page={{ blogs.previous_page_number }}">previous</a> {% endif %} <span class="current"> Page {{ blogs.number }} of {{ blogs.paginator.num_pages }} </span> {% if blogs.has_next %} <a href="?page={{ blogs.next_page_number }}">next</a> {% endif %} </span> </div>
测试页面
参考:https://docs.djangoproject.com/en/1.9/topics/pagination/
原文:http://www.cnblogs.com/onmyway227/p/5263759.html