好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

sqlAlchemy的查询分页和获取总条数

最近几天在做一些python项目的开发,其中用到了python的ORM框架sqlAlchemy,因为对python和sqlAlchemy并不熟悉,积累一些小的知识点分享给大家。

获取总条数

通常情况下 我们想知道表中的总条数的话sql这样写的:

 select count(id) from user  

如此我们便可以得到表中的总条数

在使用sqlAlchemy中想要获得总条数怎么办? 这样使用,需要引用 func

 from sqlalchemy import func

count =session.query(func.count(user.id)).scalar() 

如上,我们就可以得到数据的条数 相关链接+官方链接 截图

分页查找 比较简单,直接贴代码
 userlist=session.query(user).order_by(user.id.desc()).limit(pageSize).offset(
                (pageIndex-1)*pageSize).all() 
我犯的错误 查询总条数的时候没有使用func.count() 我是这么写的
 userlist=session.query(user).order_by(user.id.desc())
count=len(list(userlist))

userlist = userlist.limit(pageSize).offset(
                  (pageIndex-1)*pageSize) 

这样也可以获取到数据的条数,数据量少的话可能没有什么感觉,当数据量大的时候会发现,查询数据真慢 相当于查询了两次数据库之后,再在内存中重新计算条数和分页。 大数据量的情况下这样效率极低

查看更多关于sqlAlchemy的查询分页和获取总条数的详细内容...

  阅读:34次