django分頁器Paginator的基本使用

2021-09-25 09:45:56 字數 1851 閱讀 6617

說明:為了方便,這部分我沒有使用queryset做資料來源,而是用乙個列表做資料來源

from django.core.paginator import paginator

#假設下面的列表就是我們要分頁的資料,我們希望每頁顯示3個名字

source=['黑沼爽子','風早翔太','碓氷拓海','玖蘭樞','錐生零','入江直樹']

#例項化paginator,兩個引數分別是要分頁的資料,以及每頁希望顯示多少條資料

p=paginator(source,3)

#用paginator物件的get_page方法獲得第一頁的page物件,引數是頁碼

page1=p.get_page(1)

#用同樣的方法獲得第二頁的page物件

page2=p.get_page(2)

#遍歷第一頁的page物件,獲取第一頁會顯示的全部資料並列印出來

print('下面是第一頁要顯示的3條資料:')

for data in page1:

print(data)

#通過乙個page物件獲取它的頁碼並列印出來

print('page2的頁碼是',page2.number)

#通過乙個page物件獲取本次分頁的總頁數

print('總頁數是',page1.paginator.num_pages)

#通過乙個page物件獲取乙個可迭代的所有頁碼物件(這個物件從1開始,使用起來非常方便)

print('可迭代的頁碼物件',page1.paginator.page_range)

終端:

下面是第一頁要顯示的3條資料:

黑沼爽子

風早翔太

碓氷拓海

page2的頁碼是 2

總頁數是 2

可迭代的頁碼物件 range(1, 3)

urls.py

from django.urls import re_path

from . import views

urlpatterns=[

#路由裡的\d+用於接收乙個數字,這個數字就是頁碼

re_path(r'^studentpage/(\d+)/$',views.studentpage),

]

views.py

from django.shortcuts import render

from .models import students

from django.core.paginator import paginator

def studentpage(request,pageid):

'''這是管理學生資訊分頁的檢視'''

#取出全部學生資料

allstudentslist=students.stuobj.all()

#把全部學生分頁,每頁顯示兩條資料,生成了乙個分頁器的例項

paginator=paginator(allstudentslist,2)

#根據url裡的pageid拿到對應的那一頁的資料,這個pageid就是我們配路由的時候寫的\d+接收到的整數

#currentpagelist是乙個page物件,它不僅包含了這一頁需要顯示的學生資訊,還有這一頁的頁碼,而且可以通過它找到總頁數

currentpagelist=paginator.page(pageid)

#把currentpagelist傳給模板

SQLAlchemy新增分頁 paginate

from sqlalchemy.orm import query class pagination object 分頁物件 def init self,query,page,per page,total,items self.query query self.page page self.per 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...