from django.core.paginator import Paginator
def test_page(request):
if request.method == "GET":
page_num = request.GET.get('page',1)
all_data = [10,20,30,40,50,60,70,80,90,100]
paginator = Paginator(all_data,2)
c_page = paginator.page(int(page_num))
return render(request,"test_page.html",locals())
构造方法:
panginator = Paginator(object_list,per_page)
参数 | 说明 |
---|
object_list | 需要分类数据的对象列表 |
per_page | 每页数据个数 |
返回值 | panginator的对象 |
panginator对象的属性
属性 | 说明 |
---|
count | 需要分页的数据对象总数 |
num_pages | 分页后的页面总数 |
page_range | 从一开始的range对象,用于记录页码 |
per_page | 每页数据个数 |
panginator对象的方法
panginator对象.page(number)
#panginator对象的具体页的对象
参数: number为页码信息(从1开始)
返回: number对应的页信息
说明: 提供页码不存在,异常(InvalidPage)
page方法的属性
属性 | 说明 |
---|
object_list | 当前页上所有数据对象的列表 |
number | 当前页的信号 |
paginator | 当前page对象相关的paginator对象 |
has_next() | 如有下一页返回True |
has_previous() | 如有上一页返回True |
has_other_pages() | 如有上一页或下一页(其它页)返回True |
nex_page_number() | 返回下一页页码,没有异常(InvalidPage) |
previous_page_number() | 返回上一页页码,没有异常(InvalidPage) |