1. 程式人生 > >sqlalchemy不用flask如何分頁?sqlalchemy的懶載入

sqlalchemy不用flask如何分頁?sqlalchemy的懶載入

假設當前頁數current_page、總頁數total_pages、一頁多少行page_size

由於資料是從第0條開始的,所以第一頁的資料是在0~page_size-1的位置,以此類推,則取一頁資料為:

query = session.query(User).limit(page_size).offset((current_page-1)*page_size)

BTW,由於sqlalchemy使用了懶載入,懶載入指:直到真正使用查詢結果時,才會觸發上面的查詢語句開始進行資料庫查詢。

所以這條語句實際上返回的是一個Query型別的SQL查詢語句,並不是一頁的資料。

若我們想直接獲取到實際的資料,可以執行:

users = query.all()

這樣users即為我們實際需要的資料了。

all()函式類似的還有 one()  scalar()  first() one_or_none() get(),它們都可以執行Query型別的查詢語句返回真正結果哦 :D