Django项目实现分页返回,结合forloop实现编号递增
需要导入Paginator包
from django.core.paginator import Paginator
实现步骤:
- 需要设置每页大小
- 需要获取每页的页码,
- 查询对应的数据,提供给Paginator,转化为Page实例
- 自增编号结合forloop.counter,实现序号递增;但第二页开始,序号还是从1开始,没有从11~20,在返回的时候,设置开始的序号,并在html页面结合add开始,实现每页的序号递增
- 同步html页面设置
具体实现:
views.py 设置查询对应的数据,并通过Paginator,转化为Page对象(返回的是否有上下页、上下页、页码等),传递给前端html页面使用
解决编号从1开始,需要传入当前的页面,和每页的大小,得出开始编号值
如第二页,每页展示10条,传入页码2, start = (2-1)*10 = 10
html页面的forloop.counter|add:start,forloop.counter获取到的编号1+10 =11、12、13,就可以实现序号连续递增
Views层返回的数据,循环遍历显示,编号使用forloop.counter;
如果不加add:start,则每一页都从1开始,序号没有连续
最终实现结果: