必要属性和方法
- per_page: 每页显示条目数量
- count: 数据总个数
- num_pages:总页数
- page_range:页面范围,从1开始,例如[1,2,3,4]。
- page: page对象
- 上面的属性需要用 一页对象dian.整体对象dian.属性名 才能调用
- has_next 是否有下一页
- next_page_number 下一页页码
- has_previous 是否有上一页
- previous_page_number 上一页页码
- object_list 分页之后的数据列表
- number 当前页码
- paginator paginator对象
主要步骤
-
在views中先导入必要的包from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
-
在views方法中定义函数,接收页数
注:可在函数括号内传参,此时需要在urls中配置用到(?P<传参>),在HTML中用到{% url '路由' 传参%},views方法体中直接接受即可;还有一种方法是只在HTML的a标签中用 '?page=参数' ,a标签不写路由则默认跳转到此时正在访问的的路由,就会在路由后加上?page=参数(GET方式传参),此是需要在views方法体中用request.GET.get('参数名') 来接收。
- 接收完毕后,获取models中要显示的数据
- 创建Paginator对象,第一个参数为要显示的数据,第二个参数指定每页中要显示的数据条数
- 用Paginator对象调用page方法展示传递过来的参数指定的页
- render返回