django实现模板分页知识点总结

1.Paginator

  数据分页工具

  对象创建 : Paginator(数据集,每一页显示条数)

  属性  count:对象总数

      page_range:页码列表,从1开始

           num_pages:页面总数

  方法: page(整数):获得一个page对象

  示例代码:

    # pindex 当前是第几页  psize 每页显示条数

    blogs = Blog.objects.all()

    p = Paginator(blogs, psize)

    ptotal = p.num_pages

    p_list = p.page(pindex) 

  错误总结:

    InvalidPage:page()传递无效页码

    PageNotAnInteger:page()传递的不是整数

    Empty:page()传递的值有效,但是没有数据

2、Page

具体的某一页面

对象获得,通过Paginator的page()方法获得
属性
  object_list:当前页面上所有的数据对象
  number:当前页的页码值
  paginator:当前page关联的Paginator对象
方法
  has_next():判断是否有下一页
  has_previous():判断是否有上一页
  has_other_pages():判断是否有上一页或下一页
  next_page_number():返回下一页的页码
  previous_page_number():返回上一页的页码
  len():返回当前页的数据的个数

def showBlogs(request, pagenum):
  # 查询数据库获取所有博文
  blogs = Blog.objects.all()

  # 构建分页器对象,blogs=所有博文,2=每页显示的个数
  paginator = Paginator(blogs, 2)

  # 获取第n页的页面对象
  page = paginator.page(pagenum)

  # Paginator和Page的常用API
  # page.previous_page_number()
  # page.next_page_number()
  # page.has_previous()
  # page.has_next()


原文链接:https://blog.csdn.net/weixin_44266650/article/details/87862908

猜你喜欢

转载自www.cnblogs.com/wllit/p/12376255.html