自定义数据分页
def paginate_data(data_list, size_page, current_page):
"""
数据分页函数
:param data_list: list, 数据列表
:param size_page: int, 每页的数量
:param current_page: int, 当前页码
:return: tuple, (总页数, 当前页码, 当前页的数据列表)
"""
if size_page <= 0:
raise ValueError("每页数量必须大于0")
if current_page <= 0:
raise ValueError("当前页码必须大于0")
total_page = (len(data_list) + size_page - 1) // size_page
current_page = min(current_page, total_page)
start_index = (current_page - 1) * size_page
end_index = start_index + size_page
result_data_list = data_list[start_index:end_index]
return total_page, current_page, result_data_list
data_list = [i for i in range(100)]
size_page = 10
current_page = 3
total_page, current_page, result_data_list = paginate_data(data_list, size_page, current_page)
print(f"总页数: {total_page}")
print(f"当前页: {current_page}")
print(f"当前页数据列表: {result_data_list}")
django Paginator库 数据分页
from django.core.paginator import Paginator
def paginate_data(data_array, _size, _page, _limit_max=100):
"""
data_array:要进行分页的数组对象(tuple/list/QuerySets)
_size:每页的数据量(条数/每页)
_page: 当前页数
_limit_max=100 # 指定限制每页的最大数量
"""
_size = _size_max if _size > _size_max else _size
paginator = Paginator(obj_set, _size)
_max_page = paginator.num_pages
_page = _max_page if _page > _max_page else _page
page_datas = paginator.get_page(_page)
return page_datas
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步