1.视图views.py
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage def index(request): all = Blog.objects.all() # 获取全部数据的对象 paginator = Paginator(all,2) # 创建对象,将all分成每页2条数据 if request.method == ‘GET‘: # 前端get传参 page = request.GET.get(‘page‘) # 获取前端传进来的页数page try: info = paginator.page(page) # 获取所传页数的数据对象 except PageNotAnInteger: # 如果请求的页数不是整数, 返回第1页 info = paginator.page(1) except EmptyPage: # 如果请求的页数不在合法的页数范围内,返回结果的末尾页 info = paginator.page(paginator.num_pages) return render(request,‘blog/index.html‘,{‘info‘:info}) #将获取的页的对象传到前端页面
2.模板template代码
<div> {# 如果有上一页 #} {% if info.has_previous %} {# 点击跳转到上一页,以get方式传递上一页的页码数到后端 #} <a class=‘active‘ href="http://139.198.16.166:8000/index/?page={{ info.previous_page_number }}">上一页</a> {% endif %} {# 显示当前页数#} <span class="current">第{{ info.number }}页 | 共{{ info.paginator.num_pages }}页</span> {# 如果有下一页 #} {% if info.has_next %} {# 同上 #} <a class=‘active‘ href="http://139.198.16.166:8000/index/?page={{ info.next_page_number }}">下一页</a> {% endif %} </div>
原文:https://www.cnblogs.com/zhangyh-blog/p/14738929.html