flask ORM中使用SQLAlchemy查询使用(1)

SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。
其中查询是最常使用的功能之一。

⽅法说明

  1. get 根据主键进⾏查询,查到返回对象,没查到返回None
  2. get_or_404 功能同上,查不到时,直接报404错
  3. all 查询所有数据,返回⼀个列表(元素全是对象)
  4. first 返回第⼀条数据,没有时返回None
  5. first_or_404 功能同上,查不到时报404错
  6. limit 限制结果集数量,返回查询对象,可以继续进⾏链式查询操作
  7. offset 设置偏移量,返回查询对象,可以继续进⾏链式查询操作
  8. order_by 结果集排序,可以指定多个字段,asc升序(默认),desc降序
  9. count 统计总数

案例

  • all() 返回⼀个列表 包含所有对象
⽤法:类名.query.all()
db.session.query(模型名).all()
u = User.query.all()[0:2]
u = User.query.all()
u = db.session.query(User.username,User.password).all() #指定字段
u = db.session.query(User).all()
  • first() 取出第⼀条数据
data = User.query.first()
print(data,type(data))
  • get() 只能获取主键对应的数据 查询不到返回None
 - User.query.get(id值)
  • 字段列表
user = User.query.with_entities(User.username,User.sex).all()
user = db.session.query(User.username,User.sex).all()
  • distinct
from sqlalchemy import distinct
data = db.session.query(User.sex).distinct().all()
data = db.session.query(distinct(User.sex)).all()
data = User.query.with_entities(distinct(User.sex)).all()
  • 别名
# 表别名
ub = aliased(UserHobby,name='ub')
data = db.session.query(ub).all()
#字段别名
data = User.query.with_entities(User.username.label('name'),
User.sex).all()
  • 排序
    (1) 默认升序/asc()
    (2) -降序/desc()
data = User.query.order_by(User.age).limit(1) #取出年龄最⼩
data = User.query.order_by(-User.age).limit(1) #取出年龄最⼤
data = User.query.filter().order_by(-User.username,User.sex).all()
data =User.query.filter().order_by(User.username.desc(), User. sex.asc()).all()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值