class pagination(object):
def __init__(self,current_page,all_count,per_page_num=2,pager_count=11):
"""封裝分頁相關資料
:param current_page: 當前頁
:param all_count: 資料庫中的資料總條數
:param per_page_num: 每頁顯示的資料條數
:param pager_count: 最多顯示的頁碼個數
用法:queryset = model.objects.all()
page_obj = pagination(current_page,all_count)
page_data = queryset[page_obj.start:page_obj.end]
獲取資料用page_data而不再使用原始的queryset
獲取前端分頁樣式用page_obj.page_html
"""try:
current_page = int(current_page)
except exception as e:
current_page = 1
if current_page <1:
current_page = 1
self.current_page = current_page
self.all_count = all_count
self.per_page_num = per_page_num
# 總頁碼
all_pager, tmp = divmod(all_count, per_page_num)
if tmp:
all_pager += 1
self.all_pager = all_pager
self.pager_count = pager_count
self.pager_count_half = int((pager_count - 1) / 2)
@property
def start(self):
return (self.current_page - 1) * self.per_page_num
@property
def end(self):
return self.current_page * self.per_page_num
def page_html(self):
# 如果總頁碼 < 11個:
if self.all_pager <= self.pager_count:
pager_start = 1
pager_end = self.all_pager + 1
# 總頁碼 > 11
else:
# 當前頁如果<=頁面上最多顯示11/2個頁碼
if self.current_page <= self.pager_count_half:
pager_start = 1
pager_end = self.pager_count + 1
# 當前頁大於5
else:
# 頁碼翻到最後
if (self.current_page + self.pager_count_half) > self.all_pager:
pager_end = self.all_pager + 1
pager_start = self.all_pager - self.pager_count + 1
else:
pager_start = self.current_page - self.pager_count_half
pager_end = self.current_page + self.pager_count_half + 1
page_html_list =
# 新增前面的n**和ul標籤
'''')
return ''.join(page_html_list)
antd自定義分頁器 自定義分頁器例項
def init self,current page num,all count,request,per page num 2,pager count 11 封裝分頁相關資料 param current page num 當前訪問頁的數字 param all count 分頁資料中的資料總條數 pa...
自定義分頁器
簡單直接,上 在專案的根目錄下新建乙個包 帶有 init py檔案的資料夾 或者直接將下面的pagenation包複製到你的專案中 新建乙個py檔案,如 pagenation.py 匯入元件 mark safe 自定義類 param request request物件 param all count...
Swiper自定義分頁器
rel stylesheet href path to swiper.min.css class swiper container class swiper slide slide 1div class swiper slide slide 2div class swiper slide slide...