从数据库读出数据分页显示
#从数据库中把数据读出来 再渲染到页面上 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})