湫兮如风i 2022-04-23 15:27 采纳率: 100%
浏览 24
已结题

flask 实现分页中的小问题

img

如上图,我想使用paginate方法进行分页,Basequery有paginate方法。

而我想运行原生sql,返回的类型就不是Basequery了 是CursorResult,就没有paginate方法了

img

大家有没有什么办法,例如转换CursorResult为Basequery类型?

  • 写回答

1条回答 默认 最新

  • xjf2333 2022-04-25 21:53
    关注

    首先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} 是必须的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题