运用django自带的Paginator类的分页

运用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页面参数记得更改
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值