whyfail 2020-01-21 22:29:59 127 收藏 分类专栏: Flask框架(3)——Flask数据库 版权 query查询函数 query函数可传递的参数一共有3种: 模型名。指定查找这个模型中所有的属性(对应查询表为全表查询)。 模型中的属性。可以指定只查找某个模型的其中几个属性。 聚合函数。 func.count:统计行的数量。 func.avg:求平均值。 func.max:求最大值。 func.min:求最小值。 func.sum:求和。 聚合函数:SQL基本函数,聚合函数对一组值执行计算,并返回单个值,也被称为组函数。 func上,其实没有任何聚合函数。但是因为底层做了一些魔术,只要mysql中有的聚合函数,都可以通过func调用。
r1 = session.query(News).all() print(r1)
r2= session.query(News.title,News.price).all() print(r2)
r3 = session.query(func.count(News.id)).first() print(r3)
r4 = session.query(func.max(News.price)).first() print(r4)
r5 = session.query(func.min(News.price)).first() print(r5)
r6 = session.query(func.avg(News.price)).first() print(r6)
r7 = session.query(func.sum(News.price)).first() print(r7)
limit查询 limit:可以限制查询的时候只查询前几条数据。 属top-N查询
articles = session.query(Article).limit(10).all()
offset查询 offset:可以限制查找数据的时候过滤掉前面多少条。可指定开始查询时的偏移量。
articles = session.query(Article).offset(10).limit(10).all()
slice查询 切片:可以对Query对象使用切片操作,来获取想要的数据。 可以使用slice(start,stop)方法来做切片操作。 也可以使用[start:stop]的方式来进行切片操作。 一般在实际开发中,中括号的形式是用得比较多的。
articles = session.query(Article).order_by(Article.id.desc()).slice(0,10).all()
articles = session.query(Article).order_by(Article.id.desc())[0:10]
filter常用过滤条件 过滤是数据提取的一个很重要的功能。 equals :==
news= session.query(News).filter(News.title == "title1").first()
not equals : !=
query(User).filter(User.name != 'ed')
like & ilike [不区分大小写]:
query(User).filter(User.name.like('