Django 分页Paginator的简单用法
最近的项目中用到了分页功能,用Django自带的Paginator来实现简单的分页。
第一步,导入Paginator及相关异常模块
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
Paginator:分页器对象
PageNotAnInteger:表示传过来的页码不是Integer类型会引发该异常。
EmptyPage:表示页码不在有效范围时(即页码过大或者过小,数据为空时)会引发该异常。
第二步,分页功能编写
其中:data是数据,list类型。start是页数,int类型。limit每页的个数,int类型
p = Paginator(data, limit)
p为分页器对象,它的属性包括:
count:返回对象列表(数据)的长度
num_pages:返回总页数
page_range:返回页码列表
response = {} p = Paginator(data, limit) try: new_data = p.page(start) except PageNotAnInteger as e: print e # 页码不是整数返回第一页 new_data = p.page(1) except EmptyPage as e: print e total_num = p.num_pages if start > total_num: # 大于总页码 返回最后一页数据返回 new_data = p.page(total_num) else: new_data = p.page(1) print new_data, 'new_data' response['info'] = new_data.object_list
new_data为page的一个对象,它的常用属性为:
- object_list:同样是指对象列表,不过只包含当前页的对象
- number:当前页面的页码
- paginator :指对应的分页器对象(Paginator )
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具