分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该显示在页面上的数据在数据库表中的起始位置。

1. 每页显示的数据条数
2. 每页显示页号链接数
3. 上一页和下一页
4. 首页和末页


一、Django自带分页器
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger


def index(request):
   #大批量插入数据
   # booklist=[]
   # for i in range(100):
   #     obj=models.Book(name='book %s'%i,price=30+i*2)
   #     booklist.append(obj)
   # models.Book.objects.bulk_create(booklist)
   #-------Paginator类的使用
   book_lists=models.Book.objects.all()
   # Paginator(分页对象,每1页显示X条目)
   # -------------------------分页对象的属性
   p=Paginator(book_lists,10)
   #p.count s数据总条目 例  100
   print(p.count)
   #p.num_pages 可以分多少页 5
   print(p.num_pages)
   #page_range 页码列表   [1,2,3,4,5]
   print(p.page_range)
#--------------------------------------------------
# 以上都是和Paginator总页数对象相关的内容,一下是和单页相关的内容
  #第1页的page对象
   page1=p.page(1)
   # 获取第1页所有数据
   print(page1.object_list)
   #第2页page对象
   page2 = p.page(2)
   #获取第2页所有数据
   print(page2.object_list)
   # 可以单页的数据,就可以从前端传数据动态取第几页了!
#-----------------------------------------------------------------
View Code

相关文章: