Beispiel #1
0
def paginate(query: Query) -> Query:
    """分页查询"""
    page, per_page = map(request.args.get, ['page', 'per_page'])
    try:
        page = int(page) if page else 0
        per_page = int(per_page) if per_page else 0
    except ValueError:
        pass
    else:
        if page > 0:
            if per_page > 0:
                return query.paginate(page, per_page)
            else:
                return query.paginate(page)
    return query
Beispiel #2
0
def paginate(query: Query,
             page: Optional[int] = None,
             size: Optional[int] = None) -> Pagination:
    """Create pagination object using sane defaults.

    :param query: query to paginate results
    :type query: peewee.Query
    :param page: page number, will be fetched from request if omitted, defaults to
                 None
    :type page: Optional[int], optional
    :param size: page size, defaults to None
    :type size: Optional[int], optional
    :return: pagination object for query
    :rtype: Pagination
    """
    if page is None:
        page = get_page()
    if size is None:
        size = current_app.config.get('LIST_SIZE', 20)
    q = query.paginate(page, size)
    return Pagination(page, size, query.count(), q)