django分页使用

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def my_paginator(objs, page, page_size):
    """
    返回分页数据列表
    :param objs: 查询数据集合,可以是对象列表,也可以是列表
    :param page: 查询的页数
    :param page_size: 每页的数量
    :return:
    """
    paginator = Paginator(objs, page_size)
    try:
        contacts = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        contacts = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        contacts = paginator.page(paginator.num_pages)
    except Exception as e:
        print(e)
        return []
    print(contacts.paginator.num_pages, "num_pages 总页数")
    print(paginator.num_pages, "num_pages 总页数")
    print(paginator.count, "count 总页数")
    print(contacts.has_previous(), "has_previous 是否有上一页")
    print(contacts.has_other_pages(), "has_other_pages  其他页")
    print(contacts.next_page_number(), "next_page_number,下一页的页码值")
    try:
        print(contacts.previous_page_number(), "previous_page_number,上一页的页码值")
    except EmptyPage as e:
        print("页码少于1", e)
    print(contacts.paginator.page_range, "page_range,总页数范围")
    print(contacts.has_next(), "has_next:是否有下一页")
    print(contacts.number, "当前页码值")

    return contacts, page, paginator.count

你可能感兴趣的:(django)