zoukankan      html  css  js  c++  java
  • 从数据库读出数据分页显示

    #从数据库中把数据读出来  再渲染到页面上
    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})
  • 相关阅读:
    Linux命令格式及7个常见终端命令
    Linux主要目录速查表
    Linux和Windows系统目录结构区别
    C语言下进制的使用
    C语言变量和常量
    C语言的关键字和数据类型
    Linux下交换文件说明
    gcc编译过程
    C语言图形界面QT和MFC(待学)
    字符编码问题
  • 原文地址:https://www.cnblogs.com/kenD/p/10073096.html
Copyright © 2011-2022 走看看