基于Sqlalchemy 实现的分页器 QueryPaginate
问:为什么不用Sqlalchemy自带的 paginate 呢?
答:Sqlalchemy自带的paginate在实际应用中有所不足,不符合国内用户的习惯,且无法保证选择项一直居中
问:此QueryPaginate是否存在性能问题
答:此分页器已在多项目上使用发现counts()求值上存在性能问题,100w select 50s
图1.分页器类包含的参数见图

图2.在分页列表内选中项始终居中

上代码
def __init__(self, query, per_page: int = 30, page: int = 1):
"""
初始化分页参数
:param query: 查询对象
:param per_page: 一页多少内容
:param page: 第几页 1起
"""
self.query = query
self.per_page = per_page
self.page = page
@property
def items(self):
"""
得到分页后的内容
:return: [model row / Model]
"""
if self.page > self.pages:
return


819

被折叠的 条评论
为什么被折叠?



