說明:為了方便,這部分我沒有使用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...