赞
踩
(1)all()方法返回所有记录
Role.query.all()
(2)first()返回第一条记录,没有返回None
first_or_404()返回第一个条记录,没有返回404错误响应
- Role.query.first()
- Role.query.first_or_404()
(3)get()返回指定主键值(id字段)的记录,没有返回None
get_or_404返回指定主键值(id字段)的记录,没有返回404错误响应
- Role.query.get(1)
- Role.query.get_or_404(1)
(4)count()返回记录的数量
Role.query.count()
(5)paginate()返回一个Pagination对象,可以对记录进行分页处理
- Role.query.order_by(Role.id.desc()).paginate(page, per_page)
- # page:当前页
- # per_page:每页记录数
返回的Pagination对象的常用方法有这些:
(1)filter()使用指定的规则过滤记录,返回新产生的BaseQuery对象
- Role.query.filter(Rolee.data =='mayajun').first()
-
- # 除了‘==’和'!='外,其他常用操作符 like、in_、notin、and_、or_等
- like:
- filter(Role.data.like('%ma%'))
-
- in_:
- Role.query.filter(Role.data.in_(["马亚南", "mayaju"]))
-
- notin:
- Role.query.filter(Role.data.not_in(["mayajun", "mayaqiang"]))
-
- and_:
- from sqlalchemy import and_
- Role.query.filter(and_(Role.id>=1, Role.data.like("%ma%")))
- 或者:多个表达式中间用逗号隔开
- Role.query.filter(Role.id>=1, Role.data.like("%马%"))
- 或者:调用多个filter
- Role.query.filter(Role.id>=1).filter(Role.data.like("%马%"))
-
- or_:
- from sqlalchemy import or_
- Role.query.filter(or_(Role.id==1, Role.data=="马亚南"))
(2)filter_by()使用指定规则过滤记录(以关键字表达式的形式),返回新产生的BaseQuery对象
Role.query.filter_by(data="mayajun").first()
(3)order_by()根据指定规则排序
Role.query.filter_by(data="mayajun").order_by(Role.id.desc()).all()
(4)limit(limit)根据指定的值限制查询数量
Role.query.order_by(Role.id.desc()).limit(2).all()
(5)group_by()根据条件对记录进行分组
)1. 直接分组
Role.query.with_entities(Role.data, func.count("*")).group_by(Role.data).all()
输出结果: [('mayajun', 2), ('mayaqiang', 1), ('fadsafsd', 1), ('fdasfad', 1)]
)2. 过滤之后再分组
Role.query.with_entities(Role.data, func.count("*")).filter(Role.data.like("%ma%")).group_by(Role.data).all()
输出结果:[('mayajun', 2), ('mayaqiang', 1)]
)3. 过滤之后再分组,分组之后再过滤
- nums = func.count("*")
- Role.query.with_entities(Role.data, nums).filter(Role.data.like("%ma%")).group_by(Role.data).having(nums>1).all()
输出结果: [('mayajun', 2)]
(6)offset(offset)根据指定偏移量查询结果
Role.query.offset(2).all()
(7)随机查询3个记录
Role.query.order_by(func.random()).limit(3).all()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。