使用python实现分页功能。
当我们有大量数据需要展示时,需要对数据进行分页展示。这时就用到了分页功能,分页使得数据更好的展示给用户。
当访问页码数大于总页码数的时候。展示第一页内容。
import math
content = [
{"name":"aa","age":17},
{"name":"aa2","age":17},
{"name":"aa3","age":19},
{"name":"aa4","age":16},
{"name":"aa5","age":11},
{"name":"aa6","age":12},
{"name":"aa7","age":13},
{"name":"aa8","age":14}
]
class Pagination(object):
def __init__(self, data_list, page_index, page_size):
"""
初始化分页数据
:param data_list: 数据列表
:param page_index: 当前要查看的列表页
:param page_size: 每页默认显式几条数据
"""
self.data_list = data_list
self.page_index = page_index
self.page_size = page_size
@property
def start(self):
return (self.page_index - 1) * self.page_size
@property
def end(self):
return self.page_index * self.page_size
@property
def page_num(self):
return math.ceil(len(self.data_list) / self.page_size)
def show(self):
""" 切片展示数据 """
result = self.data_list[self.start:self.end]
if result and self.page_index <= self.page_num: # 正常分页
return result, self.page_index
else:
self.page_index = 1
result = self.data_list[self.start:self.end]
return result
if __name__ == '__main__':
p = Pagination(content, page_index=2, page_size=4)
content, page_index = p.show()
print(content)
print(page_index)