Python编程:数据库分页取数据
2023-09-14 09:07:14 时间
简单版分页
def paginate(page, paginate_by=20):
"""
表分页
"""
if page > 0:
page -= 1
return {
"limit": paginate_by,
"offset": page * paginate_by
}
if __name__ == "__main__":
for i in range(1, 10):
ret = paginate(i)
print(ret["limit"], ret["offset"])
"""
(20, 0)
(20, 20)
(20, 40)
(20, 60)
(20, 80)
(20, 100)
(20, 120)
(20, 140)
(20, 160)
"""
分页函数参考peewee模块
加强版分页函数
由于前端传回来的参数,都是字符串,后端还要转为int,每次都转很麻烦,所以直接封装到分页函数里
# -*- coding: utf-8 -*-
def paginate(page, size=20):
"""
数据库 分页 和 翻页 功能函数
@param page: int or str 页面页数
@param size: int or str 分页大小
@return: dict
{
'limit': 20, 所取数据行数
'offset': 0, 跳过的行数
'before': 0, 前一页页码
'current': 1, 当前页页码
'next': 2 后一页页码
}
"""
if not isinstance(page, int):
try:
page = int(page)
except TypeError:
page = 1
if not isinstance(size, int):
try:
size = int(size)
except TypeError:
size = 20
if page > 0:
page -= 1
data = {
"limit": size,
"offset": page * size,
"before": page,
"current": page + 1,
"next": page + 2
}
return data
if __name__ == '__main__':
result = paginate(None, None)
print(result)
result = paginate(0, 20)
print(result)
result = paginate(1, 50)
print(result)
result = paginate(3, 20)
print(result)
result = paginate("3", "30")
print(result)
"""
{'limit': 20, 'offset': 0, 'before': 0, 'current': 1, 'next': 2}
{'limit': 20, 'offset': 0, 'before': 0, 'current': 1, 'next': 2}
{'limit': 50, 'offset': 0, 'before': 0, 'current': 1, 'next': 2}
{'limit': 20, 'offset': 40, 'before': 2, 'current': 3, 'next': 4}
{'limit': 30, 'offset': 60, 'before': 2, 'current': 3, 'next': 4}
"""
相关文章
- Python的win32serviceutil之疑似BUG
- python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器
- python中删除某个元素的3种方法
- Python操作SQLite数据库的方法详解
- PYTHON--CLASS
- python virtualenv安装说明
- 【OpenCV-Python】教程:3-12 模板匹配
- Python Django 常用命令:创建迁移文件/数据库建表/创建admin超级用户
- Py之Database:Python和数据库的那些嘻嘻哈哈事详细攻略
- Py之pymssql:Python库之pymssql的简介、安装、使用方法之详细攻略
- 〖Python 数据库开发实战 - MySQL篇②〗- 一文通解关系型数据库与非关系型数据库
- 〖Python 数据库开发实战 - MySQL篇③〗- MacOS 环境下 MySQL数据库的安装与初始化
- 〖Python 数据库开发实战 - MySQL篇⑫〗- 数据表的字段约束
- 〖Python 数据库开发实战 - MySQL篇㉓〗- 单行子查询与多行子查询语法规则
- 〖Python 数据库开发实战 - MySQL篇㉞〗- 综合案例 - 新闻管理系统数据库设计的基本属性
- Python 中更优雅的环境变量设置方案
- 【推荐收藏 】Python写入MySQL数据库的三种方式,最后一种方式方便又高效
- Python编程:peewee的pwiz将已有数据库转为Model
- Python编程:Flask扩展Flask-Migrate迁移数据库
- 怎样将Emoj表情插入mysql5.6数据库__python+mysqldb
- 自己写的Python数据库连接类和sql语句拼接方法
- 猿创征文 | 三款Python学习开发任选工具&两款数据库工具
- 百度网盘python客户端——筑梦之路
- Python之pip/pip3安装冲突(十九)