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
原文地址:https://www.cnblogs.com/swearBM/p/10328498.html