目前实现功能
结合django 实现分组分页(最主要的是判断临界点)
代码实现
分页分区查询
def PageZone(request,page):
page=int(page)
if page>30 : #判断页面的特殊范围
lips_list = Student.objects.filter()[0:50]
page_range=range(1,6)
lips_list = lips_list[0:10]
elif page==30:
page_range=range(page-4,page+1)
lips_list = Student.objects.filter()[290:300]
else:
all_num = range(300) # 所有数据
if page / 5 == int(page / 5):
big_page = int(page / 5) # big_page 大的,50的页码
else:
big_page = int(page / 5 + 1)
# 取大范围数据
big_start = (big_page - 1) * 50
big_end = big_page * 50
big_num = all_num[big_start:big_end] # 大范围数据
# page在big_num中的下标
if page % 5 == 0:
now_start = 4 * 10
now_end = 5 * 10
else:
now_start = (page % 5 - 1) * 10
now_end = page % 5 * 10
if page<3:
page_range=range(1,6)
else:
page_range = range(page - 2, page + 3)
now_num = big_num[now_start:now_end] #在大范围数据中的位置
lips_list = Student.objects.filter()[big_start:big_end]
lips_list=lips_list[now_start:now_end]
return render(request, 'stu_list.html', locals())
测试效果:
大于最后页 返回第一页
其他测试结果