Exemple #1
0
def paginate(query: peewee.SelectQuery,
             page: int = 0,
             per_page: int = 100) -> tuple[peewee.SelectQuery, int]:
    """Paginate the results of a query.

    Returns results and number of pages.
    """
    total_results = query.count()
    pages = math.ceil(total_results / per_page)
    if pages and page >= pages:
        raise utils.RequestError(3201)
    page = query.offset(page * per_page).limit(per_page)
    return page, pages