from django.core.paginator import Paginator,PageNotAnInteger,InvalidPage,EmptyPage
在视图层写入代码:
if request.method == "GET":
# 获取 url 后面的 page 参数的值, 首页不显示 page 参数, 默认值是 1
page = request.GET.get('page')
try:
books = paginator.page(page)
# 注意捕获异常
except PageNotAnInteger:
# 如果请求的页数不是整数, 返回第一页。
books = paginator.page(1)
except InvalidPage:
# 如果请求的页数不存在, 重定向页面
return HttpResponse('找不到页面的内容')
except EmptyPage:
# 如果请求的页数不在合法的页数范围内,返回结果的最后一页。
books = paginator.page(paginator.num_pages)
新建一个HTML文件,在里面写入以下代码:
{% if books.has_previous %}
<a class = 'active' href = "?page=1">首页</a>
<a class='active' href="?page={{ books.previous_page_number }}">上一页</a>
{% endif %}
第{{ books.number }}页 总页数:{{ books.paginator.num_pages }}
{% if books.has_next %}
<a href="?page={{books.paginator.num_pages}}">尾页</a>
<a class='active' href="?page={{ books.next_page_number }}">下一页</a>
{% endif %}