# skit_panel_backend/utils/pagination.py def paginate(data_list: list, page: int, page_size: int): """ 一个简单的列表分页工具。 :param data_list: 要分页的完整列表。 :param page: 当前页码 (从1开始)。 :param page_size: 每页的项目数。 :return: 一个包含分页后数据和总数的字典。 """ if not isinstance(data_list, list): # 如果输入不是列表,返回空结果 return {"total": 0, "list": []} total = len(data_list) # 确保页码和页面大小是正整数 page = max(1, page) page_size = max(1, page_size) start = (page - 1) * page_size # 防止切片索引越界 if start >= total: return {"total": total, "list": []} end = start + page_size paginated_list = data_list[start:end] return { "total": total, "list": paginated_list }