• Django之分页器小插件


      分页器是我们网站中常用的一种小插件,可以帮我们实现数据的分页化

      那么我们要如何实现分页器呢,接下来让我们了解一下

    实现原理

      对我们已经存放的数据按照规定条数,以一页一页的方式显示,最后一页要是溢出则再加一页

    分页器的一些调用方式

    后续补充

    具体实现

      在这里我们直接上具体的代码来实现我们对于分页器的需求

      这里是我们的视图函数

    def index(request):
        '''分页器'''
        # book_list=[]
        # for i in range(100):
        #     book = Book(name="book_%s"%i,city=i*i)
        #     book_list.append(book)
        #
        # Book.objects.bulk_create(book_list)#插入我们需要的数据
        book_list = Book.objects.all()#
    
        paginator = Paginator(book_list,15)#取出我们需要的数据以及规定每一页的显示条数
        print(paginator.count)
        print(paginator.num_pages)
    
        current_page_num = int(request.GET.get('page', 1))  # 获取当前页数
        if paginator.num_pages > 11:
            if current_page_num - 5 < 1:
                page_range = range(1,12)
            elif current_page_num + 5 > paginator.num_pages:
                page_range = range(paginator.num_pages-10,paginator.num_pages+1)
            else:
                page_range = range(current_page_num - 5,current_page_num + 6)
        else:
            page_range = paginator.page_range
    
        try:
            #显示某一页具体数据的两种方式
            current_page = paginator.page(current_page_num)
            print('object_list',current_page.object_list)
            for i in current_page:
                print(i)
        except EmptyPage as e:
            current_page=paginator.page(1)
        return render(request,'index.html',locals())
    

      在使用之前我们要知道的是我们利用的是Django给我们的分页器组件,不需要我们再造轮子了

      所以我们需要导入这些家伙

    from django.core.paginator import Paginator,EmptyPage
  • 相关阅读:
    linq 查询 过滤数据中某个值是否在数组中
    Nginx 摘要
    Unity调用外部摄像头,全屏显示摄像头画面
    Vuforia切换回识别场景后黑屏解决
    Unity3d通过脚本生成apk
    EF6 CodeFirst连接MySql 报nvarchar('max')错误解决办法
    UNITY_MATRIX_MVP和UnityObjectToClipPos
    Unity的stateMachineBehaviour
    U3D加载服务器上的assetbundle
    jquery解析xml,获取xml标签名
  • 原文地址:https://www.cnblogs.com/swearBM/p/10328498.html
Copyright © 2020-2023  润新知