python封装分页器
page: 表示页码
num: 表示每页要显示的条数
total: 总条数
代码解析
select * from test limit (start,end)
select * from test limit 10,5
返回数据是 test 表中的 第11,12,13,14,15条数据
因此得出结论:
end: 就是显示出来的条数
start: start+1 表示从某条数据开始展示 展示end条数据
分页sql语句
select * from test limit (page-1)*num,num
封装
from db import Db
class PageNum:
def __init__(self,total=1,page=1,num=1)
self.total = int(total)
self.page = int(page)
self.num = int(num)
# 计算页数
def page_num(self)
# 总数 / 每页个数
if self.total % self.num == 0:
return self.total // self.num
else:
return self.total // self.num + 1
# 分页数据
# sql 项目中如果用的是原生sql写法 可在查询语句中的sql拿过来 对获取到的数据进行分页
def get_data(self,sql)
_limit = (self.page-1)*self.num
_offset = self.num
# 这个sql 就是分页的sql了 通过这个sql就可以获取分页数据了
sql += " limit %s,%s"%(_limit,_offset)
# Db 是我自己写的一个sql封装类
mydb = Db()
res = mydb.get_all(sql)
return res