1. 程式人生 > >從資料庫讀出資料分頁顯示

從資料庫讀出資料分頁顯示

#從資料庫中把資料讀出來  再渲染到頁面上
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})