1.原理:
Django查询本身是有惰性的,all并不是将所有的数据查询出来,只有在排序或者截取的时候,才会 具体查询。
查询 第1页到第5页,数据库只查询前50条数据,
查询 第6页的时候,会查询50-100。
首先编写实例代码
page_size=10
当我们查询第一到五页的时候,不对其他数据进行查询,只查询前50条数据
也就是5页,每页显示10条数据
2.效果
当我们查询第1-5页的时候,不对所有数据进行查询,只查询前50条,也就是5页
当前页码 数据库查询条数 前端页面显示的条数
#page 1 select_range 0-50 return_range 1-10 r_n = 1 s_n = 1
#page 2 select_range 0-50 return_range 10-20 r_n = 2 s_n = 1
#page 3 select_range 0-50 return_range 20-30 r_n = 3 s_n = 1
#page 4 select_range 0-50 return_range 30-40 r_n = 4 s_n = 1
#page 5 select_range 0-50 return_range 40-50 r_n = 5 s_n = 1
#page 6 select_range 50-100 return_range 0-10 r_n = 1 s_n = 2
#page 7 select_range 50-100 return_range 10-20 r_n = 2 s_n = 2
#page 8 select_range 50-100 return