#从数据库中把数据读出来 再渲染到页面上
def book_view(request):
#book_list=Book.objects.all()
# return render(request, "book_view.html",{"book_list":book_list})
#把读取的内容交给页面,然让页面交给浏览器
book_list=Book.objects.all()
paginator=Paginator(book_list,8) #每页显示10个
try:
#当前页,如果取不到默认是1
current_num=int(request.GET.get("page",1)) #当前页码
book_list=paginator.page(current_num) #展示当前页的10条数据
except EmptyPage:
book_list=paginator.page(1) #强制更新为第一页
if paginator.num_pages>11: #一般网页显示11页, 左5页,右5页,加上当前页一共11页
if current_num-5 < 1: #如果前5页的当前页-5 小于1的时候
pageRange=range(1,11) #页码是初始状态
elif current_num+5 > paginator.num_pages: #如果后5页中的当前页+5 大于总页数时
## 页码的列表:范围是(当前页-5,总页数+1)。因为range顾头不顾尾,需要加1
pageRange=range(current_num-5,paginator.num_pages+1)
else:
# 页码的列表:后5页正常时,页码范围是(当前页-5,当前页+6)。注意不是+5,因为range顾头不顾尾!
pageRange=range(current_num-5,current_num+6)
else:
pageRange=paginator.page_range #页码列表
print(paginator.page_range) #range(1, 11)
return render(request, "book_view.html", {"book_list": book_list, "current_num": current_num, "paginator": paginator,"pageRange":pageRange})