django中提供了乙個類paginator專門用來管理和處理分頁資料,所以我們在使用之前先導入好相應的類,,另外這裡我們也匯入了待會會用到的處理異常的兩個類emptypage和pagenotaninteger:
from django.core.paginator import paginator, emptypage, pagenotaninteger
接著編寫好檢視函式test:
def test(request):
course_list=coursevideo.objects.all()
#生成pagintor物件,定義每頁顯示10條記錄
paginator=paginator(course_list,10)
#獲取當前的頁碼數,預設為1
page=request.get.get("page",1)
#把當前的頁碼數轉換為整數型別
currentpage=int(page)
try:
video_list=paginator.page(page)#獲取當前頁碼的記錄
except pagenotaninteger:
video_list=paginator.page(1)#如果使用者輸入的頁碼不是整數時,顯示第1頁的內容
except emptypage:
video_list=paginator.page(paginator.num_pages)#如果使用者輸入的頁碼不是整數時,顯示第1頁的內容
return render(request, "test.html", locals())
接下來我們完成前端頁面的邏輯,這裡定義的檔案為test.html:
}}}上傳修改
詳情 }}
from django.core.paginator import paginator
objects = ['john','paul','george','ringo','lucy','meiry','checy','wind','flow','rain']
p = paginator(objects,3) # 3條資料為一頁,例項化分頁物件
print p.count # 10 物件總共10個元素
print p.num_pages # 4 物件可分4頁
print p.page_range # xrange(1, 5) 物件頁的可迭代範圍
page1 = p.page(1) # 取物件的第一分頁物件
print page1.object_list # 第一分頁物件的元素列表['john', 'paul', 'george']
print page1.number # 第一分頁物件的當前頁值 1
page2 = p.page(2) # 取物件的第二分頁物件
print page2.object_list # 第二分頁物件的元素列表 ['ringo', 'lucy', 'meiry']
print page2.number # 第二分頁物件的當前頁碼值 2
print page1.has_previous() # 第一分頁物件是否有前一頁 false
print page1.has_other_pages() # 第一分頁物件是否有其它頁 true
print page2.has_previous() # 第二分頁物件是否有前一頁 true
print page2.start_index() # 第二分頁物件的元素開始索引 4
print page2.end_index() # 第2分頁物件的元素結束索引 6
Django 實現web分頁顯示
從資料庫取出資料,根據事先定義的每頁顯示的數量,進行分頁計算,得到頁數,構造html,返回給前端解析顯示。大致分為兩種 def page student list request,page page int page start num page 1 10 end num page 10 db st...
Django 分頁的簡單實現
django分頁比較簡單,它內建了乙個paginator類.這樣對分頁的操作只需要明白這個類就ok了。def list request after range num 5 bevor range num 4 try page int request.get.get page 1 print page...
django 實現分頁功能
分頁效果 檢視 1 coding utf 8 2 from django.shortcuts import render,get object or 404 3 from django.core.paginator import paginator,pagenotaninteger,emptypag...