• 从数据库读出数据分页显示


    #从数据库中把数据读出来  再渲染到页面上
    def book_view(request):
        #book_list=Book.objects.all()
        # return render(request, "book_view.html",{"book_list":book_list})
        #把读取的内容交给页面,然让页面交给浏览器
    
        book_list=Book.objects.all()
        paginator=Paginator(book_list,8)  #每页显示10个
    
        try:
            #当前页,如果取不到默认是1
            current_num=int(request.GET.get("page",1)) #当前页码
            book_list=paginator.page(current_num)  #展示当前页的10条数据
        except EmptyPage:
            book_list=paginator.page(1)  #强制更新为第一页
    
    
        if paginator.num_pages>11: #一般网页显示11页, 左5页,右5页,加上当前页一共11页
            if current_num-5 < 1:   #如果前5页的当前页-5 小于1的时候
                pageRange=range(1,11) #页码是初始状态
            elif current_num+5 > paginator.num_pages: #如果后5页中的当前页+5  大于总页数时
                ## 页码的列表:范围是(当前页-5,总页数+1)。因为range顾头不顾尾,需要加1
                pageRange=range(current_num-5,paginator.num_pages+1)
            else:
                # 页码的列表:后5页正常时,页码范围是(当前页-5,当前页+6)。注意不是+5,因为range顾头不顾尾!
                pageRange=range(current_num-5,current_num+6)
        else:
            pageRange=paginator.page_range  #页码列表
    
        print(paginator.page_range)  #range(1, 11)
        return render(request, "book_view.html", {"book_list": book_list, "current_num": current_num, "paginator": paginator,"pageRange":pageRange})
  • 相关阅读:
    Java 密码扩展无限制权限策略文件
    深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
    git 常用功能 _fei
    ActiveMQ 使用
    【dp】导弹拦截
    【dp】求最长上升子序列
    【贪心】1225 金银岛
    最大子矩阵
    归并排序求逆序对
    服务器安全部署文档
  • 原文地址:https://www.cnblogs.com/kenD/p/10073096.html
Copyright © 2020-2023  润新知