分頁方法需要參數(當前頁數,總數據量,拿到query的值)





class Pagination:
def __init__(self, page_num, all_count ,params=None,per_num=10,max_show=11):
"""
:param page_num: 當前的頁碼數
:param all_count: 總數據量
:param per_num: 每頁顯示的數據條數
:param max_show: 最大顯示頁碼數
:param self.total_page_num: 總頁碼數
:param self.page_start: 起始頁碼數
:param self.page_end: 終止頁碼數

"""
try:
page_num = int(page_num)
if page_num <=0:
page_num = 1
except Exception as e:
page_num = 1
self.parmas = params if params else QueryDict(mutable=True)
self.page_num = page_num
self.all_count = all_count
self.per_num = per_num
total_page_num, more = divmod(all_count,per_num)
if more:
total_page_num+=1
half_show = max_show//2
# 總頁碼數不足以滿足最大頁碼數
if total_page_num < max_show:
page_start = 1
page_end = total_page_num
else:
if page_num-half_show<=0:
page_start =1
page_end = max_show
elif page_num+half_show>total_page_num:
page_start = total_page_num-max_show+1
page_end = total_page_num
else:
page_start = page_num - half_show
page_end = page_num + half_show
self.page_start=page_start
self.page_end=page_end
self.total_page_num = total_page_num
print(self.parmas.urlencode())
@property
def page_html(self):
page_list = []
if self.page_num == 1:
page_list.append('<li class="disabled"><a ><span>&laquo;</span></a></li>')
else:
self.parmas['page'] = self.page_num - 1
print(self.parmas.urlencode())
page_list.append('<li><a href="?{}" ><span>&laquo;</span></a></li>'.format(self.parmas.urlencode()))
for i in range(self.page_start,self.page_end + 1):
self.parmas['page'] = i
if i == self.page_num:
page_list.append('<li class="active"><a href="?{}">{}</a></li>'.format(self.parmas.urlencode(), i))
else:
page_list.append('<li><a href="?{}">{}</a></li>'.format(self.parmas.urlencode(), i))

if self.page_num == self.total_page_num:
page_list.append('<li class="disabled"><a><span>&raquo;</span></a></li>')
else:
self.parmas['page'] = self.page_num + 1
page_list.append('<li><a href="?{}" ><span>&raquo;</span></a></li>'.format(self.parmas.urlencode()))

return ''.join(page_list)
@property
def start(self):
return (self.page_num - 1)* self.per_num

@property
def end(self):
return self.page_num * self.per_num



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM