image.png
一闺属、頁面展示頁碼-自定義頁碼函數(shù)
我在工具包文件寫完丽,寫了一個繼承函數(shù)
-
首先我們給知道當前用戶點擊的頁數(shù)
-
知道我們設置底欄展示頁數(shù)
#保證循環(huán)的次數(shù)在規(guī)定的展示欄個數(shù)卸勺,如果設置11奸焙,循環(huán)的次數(shù)保證在11次
class CustomPaginator(Paginator):
def __init__(self, current_page, per_pager_num,*args, **kwargs):
'''
:param current_page: 當前頁
:param per_pager_num: 底邊欄展示頁數(shù)
'''
self.current_page = int(current_page)
self.per_pager_num = int(per_pager_num)
super(CustomPaginator, self).__init__(*args, **kwargs)
def page_num_range(self):
#總頁數(shù)小于實際展示頁
if self.num_pages < self.per_pager_num:
return range(1,self.num_pages+1)
#part 當前總展示欄中間點5
part = int(self.per_pager_num//2)
#最小頁數(shù)為1防止出現(xiàn)負數(shù)情況
if self.current_page <= part:
return range(1,self.per_pager_num+1)
#最大頁數(shù)為實際總頁數(shù)
if(self.current_page+part)>self.num_pages:
return range(self.num_pages-self.per_pager_num+1,self.num_pages+1)
return range(self.current_page-part,self.current_page+part+1)
view 頁面案例
對著里的異常持懷疑態(tài)度兵罢,提醒自己后期不論什么錯誤都第一頁献烦,設計一個抓全部異常
def index1(request):
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
current_page = request.GET.get('page')
paginator = Paginator(USER_LIST,10)
# per_page: 每頁顯示條目數(shù)量
# count: 數(shù)據(jù)總個數(shù)
# num_pages:總頁數(shù)
# page_range:總頁數(shù)的索引范圍,如: (1,10),(1,200)
# page: page對象(是否具有上一頁卖词,下一頁)
try:
posts = CustomPaginator.page(current_page)
# has_next 是否有下一頁
# next_page_number 下一頁頁碼
# has_previous 是否有上一頁
# previous_page_number 上一頁頁碼
# object_list 分頁之后的數(shù)據(jù)列表
# number 當前頁
# paginator paginator對象
except EmptyPage:
posts = paginator.page(paginator.num_pages)
except PageNotAnInteger:
posts = paginator.page(1)
return render(request,'index1.html',{'posts':posts})
-
html
這里想展示選擇頁更改樣式巩那,遵守選中頁==循環(huán)頁 是現(xiàn)實就好