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

原生python实现分页器

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

原生python实现分页器

原理:分页的底层原理就是利用了sql命令中的limit关键字,通过sql语句查询数据。

构建分页器

# paginator.py
from utils.database import MySQL


class Paginator:
    """
    分页器
    """

    def __init__(self, total=0, current_page=1, page_size=1):
        self.total = int(total)
        self.current_page = int(current_page)
        self.page_size = int(page_size)

        if self.page_size <= 0 or self.current_page <= 0:
            self.page_size = 1
            self.current_page = 1

    def page_num(self):
        if self.total % self.page_size == 0:
            return self.total // self.page_size
        else:
            return self.total // self.page_size + 1

    def get_data(self, sql):
        _limit = (self.current_page - 1) * self.page_size
        _offset = self.page_size
        sql += f" limit {_limit},{_offset}"
        db = MySQL()
        return db.get_all(sql)

flask中使用分页器

@course.route('/test/', methods=['GET'])
def get_course():
    current_page = request.args.get("current_page", 1)
    page_size = request.args.get("page_size", 1)
    db = MySQL()
    sql = "select count(1) as total from `course`"
    result = db.get_one(sql)

    # 实例化对象
    p = Paginator(result['total'], current_page, page_size)

    # 获取多少页
    page_num = p.page_num()

    # 获取数据
    sql = "select * from `course` order by `id` desc"
    result = p.get_data(sql)
    return {"code": 200, "page_num": page_num, "data": result}

vue中使用分页器






感谢观看!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323624.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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