python web框架中实现原生分页
本文实例为大家分享了pythonweb框架实现原生分页的具体代码,供大家参考,具体内容如下
原生分页器示例
#!/usr/bin/envpython
#-*-coding:utf-8-*-
classPagination:
def__init__(self,p,all_count,pre=10,max_show=11):
'''
:paramp:当前页码
:paramall_count:数据总条数
:parampre:每页数据量
:parammax_show:最多页码数
'''
try:
self.p=int(p)#传进来的页码
ifself.p<=0:
self.p=1
exceptExceptionase:
self.p=1
#总量
#all_count=all_count
#pre=per#每页数据条数
total_num,more=divmod(all_count,pre)
ifmore:
total_num+=1#total_num总数据页数
#显示页码数
max_show=max_show
iftotal_num<=max_show:#总数据量很小
page_start=1
page_end=total_num
else:
ifself.p-max_show//2<=0:#防止左边出现0页
page_start=1
page_end=max_show
elifself.p+max_show//2>=total_num+1:#防止右边出现超出
page_end=total_num
page_start=page_end-max_show
else:
page_start=self.p-max_show//2
page_end=self.p+max_show//2
#数据的起始结束
self.start=(self.p-1)*pre
self.end=self.p*pre
#页码
self.page_start=page_start
self.page_end=page_end
self.total_num=total_num
@property
defpage_html(self):
li_list=[]
foriinrange(self.page_start,self.page_end+1):
ifi==self.p:
li_list.append('{}'.format(i,i))
else:
li_list.append('{} '.format(i,i))
#添加页首页尾
li_list.insert(0,
'« '.format(
self.p-1))
li_list.append(
'» '.format(self.p+1))
ifself.p==1:
li_list[0]='«'
elifself.p==self.total_num:
li_list[-1]='»'
pagehtml=''.join(li_list)
returnpagehtml
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。