栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

tortoise-orm 分页码(python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tortoise-orm 分页码(python)

tortoise-orm官方文档
sanic官方文档
需求描述:
由于某些orm没有分页的的封装, 自己写一个分页(tortoise-orm)
我简单看了一下 flask_sqlalchemy 中的 paginate , 他的分页也是先查出过滤查询用的总数量再进行操作的, 所以代码中的 sql_count 就是外面查询出的.count()

def paginate(request, sql_count):
    """
    分页
    :param request: 请求体的参数
    :param sql_count: 查询过后的数量
    :return: offset_num sql查询的开始num, limit_num多少条, page页码, pages总页数
    """
    try:
        page = int(request.args.get('page'))
        per_page = int(request.args.get('per_page'))
    except:
        page = 1
        per_page = 20
    pages = sql_count // per_page if sql_count % per_page == 0 else sql_count // per_page + 1
    if page <= 0:
        abort(404)  # 这里我用的sanic
    offset_num = (page - 1) * per_page
    limit_num = per_page
    return offset_num, limit_num, page, pages

Queryset这里就可以使用上面函数返回的 offset_num, limit_num

        s = await Team.filter(
            # name__icontains='8'
        ).offset(offset_num).limit(limit_num)

返回响应, 这里就使用到 page, pages
sql_count是前面ORM过滤查出的总条数

# 这里是用的sanic框架, json是属于sanic里面的
return json({"data": data, "pages": pages, "page": page, "total": sql_count})
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016064.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号