如上图,我想使用paginate方法进行分页,Basequery有paginate方法。
而我想运行原生sql,返回的类型就不是Basequery了 是CursorResult,就没有paginate方法了
大家有没有什么办法,例如转换CursorResult为Basequery类型?
如上图,我想使用paginate方法进行分页,Basequery有paginate方法。
而我想运行原生sql,返回的类型就不是Basequery了 是CursorResult,就没有paginate方法了
大家有没有什么办法,例如转换CursorResult为Basequery类型?
首先sqlAlchemy是数据库框架。
你完全可以用他的框架语言代替sql。
其次也可以不用它分页,自己做逻辑分页。
最后如果你一定要转换的话,在python中通过字典作为过渡数据类型是一个很好的方法
cur = conn.cursor()
cur.execute("...")
data = [dict(((cur.description[i][0]), value)
for i, value in enumerate(row)) for row in cur.fetchall()]
pagination = Pagination(page=page, total=..., per_page=...)
return render_template('xxx.html', pagedata=data, pagination=pagination)
或许这是一种解决方案
如果你用的db.session.execute就更简单了
data=db.session.execute(sql).all()
pagination = Pagination(page=page, total=..., per_page=...)
return render_template('xxx.html', pagedata=data, pagination=pagination)
Pagination能做到的其实并不多
sql中使用LIMIT {limit} offset {offset} 是必须的