python 分页代码
class Paging:
def __init__(self,count_total,current_page,base_url,per_page_count=10):
self.count_total = count_total# count_total 总共有多少条数据
self.current_page = current_page# current_page获取当前页
self.per_page_count = per_page_count#per_page_count每页展示数据条数
self.base_url = base_url #访问路径
@property
def data_start(self):#每页第一个数据的序号
return (self.current_page-1) * self.per_page_count
@property
def data_end(self):#每页最后一个数据的序号
return self.current_page *self.per_page_count
def total_page(self):# v 总共的页数 i 剩下几条数据
v,i=divmod(self.count_total,self.per_page_count)
if i != 0:
v = v+1
return v
def page_str(self):
v = self.total_page()
page_list = []
page_list.append("<a href='%s?p=1'>首页</a>" % ( self.base_url ))
if self.current_page == 1:
page_list.append("<a href='javascript:void(0);'>上一页</a>")
else:
page_list.append("<a href='%s?p=%s'>上一页</a>" % (self.base_url,self.current_page - 1))
if v<=11:
start_page=1
end_page = v
else:
if self.current_page<6:
start_page =1
end_page = 11+1
else:
start_page = self.current_page - 5
end_page = self.current_page + 4 + 1
if end_page>v:
start_page = v-10
end_page = v+1
for i in range(start_page,end_page):
if i == self.current_page:
page_list.append("<a class='active' href='%s?p=%s'>%s</a>"%(self.base_url,i,i))
else:
page_list.append("<a href='%s?p=%s'>%s</a>" % (self.base_url,i, i))
if self.current_page == v:
page_list.append("<a href='javascript:void(0);'>下一页</a>")
else:
page_list.append("<a href='%s?p=%s'>下一页</a>"%(self.base_url,self.current_page+1))
page_list.append("<a href='%s?p=%s'>尾页</a>"%(self.base_url,v))
page ="".join(page_list)
return page