当前位置:   article > 正文

flask ORM中使用SQLAlchemy查询使用(1)_sqlalchemy query.with.entities 404

sqlalchemy query.with.entities 404

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • first() 取出第⼀条数据
data = User.query.first()
print(data,type(data))
  • 1
  • 2
  • get() 只能获取主键对应的数据 查询不到返回None
 - User.query.get(id值)
  • 1
  • 字段列表
user = User.query.with_entities(User.username,User.sex).all()
user = db.session.query(User.username,User.sex).all()
  • 1
  • 2
  • 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()
  • 1
  • 2
  • 3
  • 4
  • 别名
# 表别名
ub = aliased(UserHobby,name='ub')
data = db.session.query(ub).all()
#字段别名
data = User.query.with_entities(User.username.label('name'),
User.sex).all()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 排序
    (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
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/510757
推荐阅读
相关标签
  

闽ICP备14008679号