使用python怎么在web框架中实现分页?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
class Pagination:
def __init__(self, p, all_count, pre=10, max_show=11):
'''
:param p: 当前页码
:param all_count: 数据总条数
:param pre: 每页数据量
:param max_show: 最多页码数
'''
try:
self.p = int(p) # 传进来的页码
if self.p <= 0:
self.p = 1
except Exception as e:
self.p = 1
# 总量
# all_count = all_count
# pre = per # 每页数据条数
total_num, more = divmod(all_count, pre)
if more:
total_num += 1 # total_num总数据页数
# 显示页码数
max_show = max_show
if total_num <= max_show: # 总数据量很小
page_start = 1
page_end = total_num
else:
if self.p - max_show // 2 <= 0: # 防止左边出现0页
page_start = 1
page_end = max_show
elif self.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
def page_html(self):
li_list = []
for i in range(self.page_start, self.page_end + 1):
if i == self.p:
li_list.append('看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联成都网站设计公司行业资讯频道,感谢您对创新互联成都网站设计公司的支持。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。