利用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,520评论 1 14
  • 一、需求缘起 分页需求 互联网很多业务都有分页拉取数据的需求,例如: (1)微信消息过多时,拉取第N页消息 (2)...
    duzhongli阅读 459评论 0 3
  • 国庆第二天,今天嗨翻模式的开启就等室友的同学来了再说吧,在这之前,先来一波笔记 查询真正重要的是响应时间,查询包含...
    小炼君阅读 1,760评论 0 50
  • 1 夏日的午后,小憩醒来。他笑眯眯地摊着手心。 “这什么?” 他不语,将那枚青绿绿的果子摊得更近,圆鼓鼓的,一端略...
    邻院儿的摆摆阅读 450评论 15 12
  • 水果粥 材料:梨,荔枝,樱桃,莲子,百合,冰糖,葡萄干 其实吧,在家做饭就随意一点,有什么水果放什么水果呗。有人会...
    小云哪阅读 326评论 2 0