常用查询
-
查询所有 :
模型类.query.all()
-
根据主键查询 :
模型类.query.get(pk)
-
根据条件查询, 查询包含某个值的数据 :
模型类.query.contains('值')
-
查询以某个值开头的数据 :
模型类.query.startswith('值')
- 第二种写法 :
模型类.query.like('值%')
- 第二种写法 :
-
条件或者条件 : or_
- 导入
sqlalchemy.or_
模型类.query.filter(or_(条件1, 条件2))
- 等同于 :
select * from user where username like 'z%' or username like '%i%';
- 导入
-
条件和条件 : and_
- 导入
sqlalchemy.and_
模型类.query.filter(and_(条件1, 条件2))
- 等同于 :
select * from user where 条件1 and 条件2;
- 导入
-
__lt__
: 小于 -
__gt__
: 大于 -
__ge__
: 大于等于 -
__le__
: 小于等于- 通常应用在范围
- 也可以直接使用 >, <, >=, <=, !=
-
非条件 :
not_
模型类.query.not_(条件)
-
检索手机号码, 找到手机号对应的用户
模型类.query.filter(模型类.phone.in_('手机号1', '手机号2', '手机号3'))
order_by
- 语法 :
- 对所有的进行排序 :
模型类.query.order_by()
- 先筛选条件再排序 :
模型类.query.filter().order_by(根据什么排序)
- 对所有的进行排序 :
- 倒序
模型类.query.order_by(模型类.字段名).all()
limit
- 常与offset(偏移) 结合使用
- 语法 :
模型类.query.limit(限制数).all()
- 示例 :
- 查询前两条数据 :
User.query.limit(2).all()
- 查询前两条数据 :
- offset
- 语法 :
模型类.query.offset()
- 示例 :
- 查询第三和第四条数据 :
User.query.offset(2).limit(2).all()
- 查询第三和第四条数据 :