from django.core.paginator import Paginator Paginator 就是分页器导入的模块
from django.core.paginator import EmptyPage EmptyPage 是一个错误异常,下面会用到,避免页码被输入无效数字导致的异常
    paginator = Paginator(bks, 7)  #Paginator 添加所有返回的数据对象,和每页展示多少数据的int参数
    paginator.count                # 数据页数
    paginator.num_pages            # 按照上面7条数据分后的总页数
    paginator.page_range           # 页码的列表
-----------------------------------------------------------------------------
    page1 = paginator.page(1)      # 获取第一页的数据对象
    for i in page1:                #遍历page1的所有数据,效果和 object_list 一样,只不过object_list是列表形式
       print(i)
    page1.object_list              #page1的所有数据 列表形式
--------------------------------------------------------------------------------
    page1.has_next()              #是否有下一页
    page1.has_other_pages()       #是否有下一页或者上一页
    page1.has_previous()          #是否有上一页
    page1.next_page_number()      #获取下一页页码 和 has_next一起用
    page1.previous_page_number()   #获取下一页页码 和 has_previous一起用
bk_list=[]
    for i in range(1,100):
        bk = models.test.objects.create(name="python-%i"%(i),price=i,)
        bk_list.append(bk)
    try:
        #不用try会提示primary_key重复,不知道原因在哪里,数据可以正常插入
        models.test.objects.bulk_create(bk_list)
    except Exception:
       pass


效果图


给选中的当前页数添加class ="active"就行.

效果图

对于上一页 下一页  要实现 分别会进行页数加减,但是也要实现第一页的时候点击上一页无效,最后一页的时候点击下一页无效
页数加减,可以用蒙版语法的过滤器add实现  上一页就add:-1,下一页就add:1,也可以使用当前页的对象的next_page_number 和previous_page_number方法

原文:https://www.cnblogs.com/Young-shi/p/15259417.html