sqlAlchemy的查詢分頁和獲取總條數

最近幾天在作一些python項目的開發,其中用到了python的ORM框架sqlAlchemy,由於對python和sqlAlchemy並不熟悉,積累一些小的知識點分享給你們。html

  1. 獲取總條數

一般狀況下 咱們想知道表中的總條數的話sql這樣寫的:python

select count(id) from user

如此咱們即可以獲得表中的總條數sql

在使用sqlAlchemy中想要得到總條數怎麼辦?
這樣使用,須要引用 func 數據庫

from sqlalchemy import func

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

如上,咱們就能夠獲得數據的條數
相關連接+官方連接
截圖 session

sqlAlchemy的查詢分頁和獲取總條數

  1. 分頁查找
    比較簡單,直接貼代碼
    userlist=session.query(user).order_by(user.id.desc()).limit(pageSize).offset(
                    (pageIndex-1)*pageSize).all()
  2. 我犯的錯誤
    查詢總條數的時候沒有使用func.count()
    我是這麼寫的
userlist=session.query(user).order_by(user.id.desc())
count=len(list(userlist))

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

這樣也能夠獲取到數據的條數,數據量少的話可能沒有什麼感受,當數據量大的時候會發現,查詢數據真慢
至關於查詢了兩次數據庫以後,再在內存中從新計算條數和分頁。
大數據量的狀況下這樣效率極低框架

相關文章
相關標籤/搜索