Django中分頁器詳解

2021-08-22 15:05:56 字數 2198 閱讀 2156

要使用django實現分頁器,必須從django中匯入paginator模組

from django.core.paginator import paginator
假如現在有150條記錄要顯示,每頁顯示10條

>>> from django.core.paginator import paginator#匯入paginator模組

>>> list1=[i for i in range(0,150)]#使用列表生成器生成乙個包含150個數字的列表

>>> page1=paginator(list1,10)#生成乙個paginator物件

>>> print(page1.count)#列印總的記錄數,即列表list1的長度

150>>> print(page1.num_pages)#列印總的頁數,即總記錄數除以每頁顯示的條目數

15>>> print(page1.page_range)#頁數的列表

range(1, 16)

>>> print(page1.page(1))#列印第一頁的page物件

>>> page1.page(1).object_list#列印第一頁的所有記錄

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> page1.page(2).object_list#列印第二頁的所有記錄

[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

3true

true

>>> page1.page(2).has_other_pages()#第2是否有其他頁

true

>>> page1.page(2).start_index()#第2頁第一條記錄的序號

11>>> page1.page(2).end_index()#第2頁最後一條記錄的序號

20>>> page1.page(0)#第0頁是否有記錄,會報錯

traceback (most recent call last):

file "", line 1, in ...

raise emptypage(_('that page number is less than 1'))

django.core.paginator.emptypage: >>> page1.page(15)#列印第15頁的物件

例子,使用django實現乙個分頁效果

前端**:

分頁器 }}

後端**:

#匯入render和httpresponse模組

#匯入paginator,emptypage和pagenotaninteger模組

from django.core.paginator import paginator, emptypage, pagenotaninteger

#從django專案的應用中匯入模組

def index(request):

#獲取book資料表中的所有記錄

book_list=book.objects.all()

#生成paginator物件,定義每頁顯示10條記錄

paginator = paginator(book_list, 10)

#從前端獲取當前的頁碼數,預設為1

page = request.get.get('page',1)

#把當前的頁碼數轉換成整數型別

currentpage=int(page)

try:

print(page)

book_list = paginator.page(page)#獲取當前頁碼的記錄

except pagenotaninteger:

book_list = paginator.page(1)#如果使用者輸入的頁碼不是整數時,顯示第1頁的內容

except emptypage:

book_list = paginator.page(paginator.num_pages)#如果使用者輸入的頁數不在系統的頁碼列表中時,顯示最後一頁的內容

return render(request,"index.html",locals())

關於python在Django中分頁的實現

import math 每頁有pn num個物件 每個頁面顯示index number個頁索引 當前pn頁 obj要查詢的模型類 def pages pn num,index number,pn,obj 最大頁數sum page 最小頁數1頁 每頁有pn num個物件 目前是pn頁 pn int p...

Django元件 分頁器

批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all paginator paginator book list,10 print count pa...

Django元件 分頁器

批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all paginator paginator book list,10 print count pa...