运用django自带的Paginator类的分页
首先导入django的分页类
from django.shortcuts import render
from app01 import models
import math
from django.core.paginator import Paginator
# Create your views here.
def stu(request):
#给数据库传200个数据 只用一次
# for i in range(200):
# stud=models.Students()
# stud.name='zs'+str(i)
# stud.age=i
# stud.save()
# student_list=models.Students.objects.all()
return render(request,'student.html')
def stu2(request):
page=request.GET.get('page')
if page==None:
page=1
page=int(page)
#order_by是按什么字段进行排序
#无这个会报警告而已
data=models.Students.objects.all().order_by('id')
#创建分页类的对象
#参数1为要分页的数据
#参数2位每一页要几行数据
p=Paginator(data,10)
page_num=p.num_pages#获取总页数
# 当获取的page大于页面总数,则回到1页面
if page>page_num:
page=1
#####让分页的选项只有5个
# 为前3页时,选项只有12345
if page<=3:
st_page=1
ed_page=5
# 为后3页时,选项只有最后5个
elif page>=(page_num-2):
st_page=(page_num-4)
ed_page=page_num
#不在特殊范围的话,就随中间数值而发生变化
else:
st_page=page-2
ed_page=page+2
#发送page_range给页面
page_range=range(st_page,ed_page+1)
#发送给页面,与之相对应页数的数据行
student_list=p.page(page)
return render(request,'student.html',locals())
与之对应的urls,和html页面参数记得更改