利用sqlalchemy的查詢接口做分頁

定義的表結構,同時也是print_order對象

print_order = Table('print_order', metadata,
                    Column('id', Integer, primary_key=True, autoincrement=True),
                    Column('order_id', String),
                    Column('Ten_or_Ali_order_id', String),
                    Column('payment_state', String),
                    Column('fee', String),
                    Column('print_num', String),
                    Column('consignee_name', String),
                    Column('consignee_phone', String),
                    Column('consignee_addr', String),
                    Column('origin_pic_name', String),
                    Column('final_pic_name', String),
                    Column('print_pic_name', String),
                    Column('origin_pic_name', String),
                    Column('spec_name', String),
                    Column('serial_number', String),
                    Column('payment_time', String)
                    )

然后在查詢的時用的sqlalchemy,那么分頁的的寫法很簡單,就是limit().offset()

# 根據手機號查
    def searchPrintOrderWithPhoneNumber(self, phoneNum):
        pattern = re.compile(r"0?(13|14|15|16|17|18)[0-9]{9}")
        phone_str = pattern.match(phoneNum)
        if phone_str:
            s = select([print_order]).limit(10).offset(2)
            sqlResult = self.conn.execute(s).fetchall()
            print sqlResult
            return phone_str.group()
        else:
            phone_str = '請輸入正確的號碼'
            return phone_str

這是句就是查詢和分頁``` s = select([print_order]).limit(10).offset(2)

`limit(10)`限制返回10條,`offset(20)`表示偏移20個位置,從第21條開始返回。
比如手機上每頁顯示10條數據,那么這時候就是從第三頁開始顯示。`limit()`和`offset()`里頭的參數讓前端傳過來就可以了。    

#####如果開發者SQL基本功較好的話,直接在代碼中寫SQL,然后利用session.execute()來執行就更直接了

根據手機號查

def searchPrintOrderWithPhoneNumber(self, phoneNum):
    pattern = re.compile(r"0?(13|14|15|16|17|18)[0-9]{9}")
    phone_str = pattern.match(phoneNum)
    if phone_str:
        sql = "SELECT * FROM print_order WHERE payment_state = 1 AND consignee_phone = " + phoneNum + " ORDER BY id DESC LIMIT 10;"
        sqlResult = self.session.execute(sql)
        for print_order in sqlResult:
            print print_order.consignee_phone
        return phone_str.group()
    else:
        phone_str = '請輸入正確的號碼'
        return phone_str




`end`
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載,覺得這篇寫 SQLAlchemy Core,寫得非常不錯。不過后續他沒寫SQLAlchemy ORM... ...
    非夢nj閱讀 5,489評論 1 14
  • 一、需求緣起 分頁需求 互聯網很多業務都有分頁拉取數據的需求,例如: (1)微信消息過多時,拉取第N頁消息 (2)...
    duzhongli閱讀 459評論 0 3
  • 國慶第二天,今天嗨翻模式的開啟就等室友的同學來了再說吧,在這之前,先來一波筆記 查詢真正重要的是響應時間,查詢包含...
    小煉君閱讀 1,742評論 0 50
  • 1 夏日的午后,小憩醒來。他笑瞇瞇地攤著手心。 “這什么?” 他不語,將那枚青綠綠的果子攤得更近,圓鼓鼓的,一端略...
    鄰院兒的擺擺閱讀 449評論 15 12
  • 水果粥 材料:梨,荔枝,櫻桃,蓮子,百合,冰糖,葡萄干 其實吧,在家做飯就隨意一點,有什么水果放什么水果唄。有人會...
    小云哪閱讀 320評論 2 0