我需要对申请进行分页,但我有一些误解,并没有在文档中找到正确的答案
我使用烧瓶,SqlAlchemy库
q中有SELECT语句,它过滤并获取查询对象列表:
q = db_session.query(AnalogsListl) \
.filter(AnalogsList.is_final == is_final)
d = BaseQuery.paginate(q)
变量d返回对象列表,如0x125c6db80处的[<;DBModels.analogs_list.AnalogsList对象,<;DBModels.analogs_list.AnalogsList对象,0x125c6ddf0处的<;DBModels.analogs_list.AnalogsList对象,<;0x125c6de50处的DBModels.AnalogsList对象,…]
然后我编写了两个类:分页和BaseQuery:
class Pagination(object):
def __init__(self, query, page, per_page, total, items):
self.query = query
self.page = page
self.per_page = per_page
self.total = total
self.items = items
def __iter__(self):
for page in range(1, self.pages + 1):
yield self.query.paginate(page, self.per_page)
def prev(self):
return self.query.paginate(self.page - 1, self.per_page)
def next(self):
return self.query.paginate(self.page + 1, self.per_page)
@property
def pages(self):
return int(ceil(self.total / float(self.per_page)))
class BaseQuery(Query):
def __init__(self, *args, **kwargs):
self.cls = args[0].class_
super(BaseQuery, self).__init__(*args, **kwargs)
def paginate(self, page=1, per_page=10):
items = self.limit(per_page).offset((page - 1) * per_page).all()
count = self.order_by(False).count()
return Pagination(self, page, per_page, count, items)
当我运行代码时,回溯返回我
raise TypeError(类型为{o.类的对象名称}
TypeError:分页类型的对象不可JSON序列化
我不确定我写的页码是否正确,也不知道如何解决我的问题
非常感谢
目前没有回答
相关问题 更多 >
编程相关推荐