Django之內置分頁器(paginator)

2022-05-15 15:11:01 字數 2990 閱讀 7156

django分頁:

fromdjango.shortcutsimportrender

fromdjango.core.paginatorimportpaginator,emptypage, pagenotaninteger

from importmodels

#

分頁物件和當前頁面資料物件的方法均可在模板中以屬性(不加括號)的方式呼叫

book_obj = models.book.objects.all()#

獲取當前書籍所有資訊

paginator = paginator(book_obj,

8)#

例項化分頁物件,每頁顯示

8

條資料

print

(paginator.count)#

總資料條數

print

(paginator.num_pages)#

總頁數

print

(paginator.page_range)#

頁數範圍

current_page_num=

int(request.get.get('page',

1))#

通過

a

標籤的

get

方式請求,預設顯示第一頁

book_objs=paginator.page(current_page_num)#

獲取當前頁面的資料物件,用於響應前端請求進行渲染顯示

ifbook_objs.has_previous():#

當前頁面是否有前一頁

print

(book_objs.previous_page_number())#

當前頁面的前一頁頁碼

ifbook_objs.has_next():#

當前頁面是否有後一頁

print

(book_objs.next_page_number())#

當前頁面的後一頁頁碼

try:

print

(page)

book_objs

= paginator.page(page)

exceptpagenotaninteger:

book_objs

= paginator.page(1)

exceptemptypage:

book_objs

= paginator.page(paginator.num_pages)

#

設定頁面操作的頁碼顯示個數(需要在前端進行是當前頁面資料物件的方法的使用)

page_range=paginator.page_range#

確定頁面範圍,以便進行模板渲染顯示頁碼操作

ifpaginator.num_pages>

5:#

頁碼只顯示

5

頁,總頁數小於

5

頁時,直接全部顯示

ifcurrent_page_num<3:

page_range=

range(1

,6)elifcurrent_page_num+

2>paginator.num_pages:

page_range=

range

(current_page_num-

5,paginator.num_pages+1)

else:

page_range=

range

(current_page_num-

2,current_page_num+3)

returnrender(request,'show.html', )

Django 內建分頁

from django.core.paginator import paginator,page userlist models.user.objects.all paginator paginator userlist,10 per page 每頁顯示條目數量 count 資料總個數 num pa...

Django內建分頁

1 匯入django類生成物件之後的方法 內建分頁需要匯入django中的類 from django.core.paginator import paginator paginator paginator user list,10 第乙個引數是我們查出來的所有的物件,第二個引數表示的是每頁顯示的行數...

Django2 1 內建分頁器

官方文件參考 python提供了內建分頁類,裡面封裝了一些屬性和方法,大大簡化了我們自定義的時間和精力,這個類位於django core paginator.py。from django.core.paginator import paginator from django.core.paginat...