学习SqlAlchemy查询语法

前提:

已经创建好表格Feature用来记录每一个项目支持的特性表格

class Feature(Base):
    __tablename__ = "feature"

    id = Column(Integer, primary_key=True, index=True)
    feature_name = Column(String(50), comment='特性名称')
    description = Column(String(100), comment='详细描述')
    project_id = Column(Integer, ForeignKey("project.id"), comment='对应的项目id')

通过SqlAlchemy查询mysql是通过一个sesion连接的

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # DBSession类型 需要创建会话session = SessionLocal()

session_ = SessionLocal()有了session实例后我们开始查询Feature表

开始查询

所有查询到对象组成的一个list,list内是每个对象的地址,可以通过res[index].属性名进行访问,例如res[0].id

如果是直接query(表)返回的都是数据库对象,需要通过.pro_id的方式访问

如果是直接query(表.pro_id)返回的也是对象,

 

查询feature整个表:

Python代码:session_.query(Feature).all()

实际执行的SQL语句:SELECT feature.id AS feature_id, feature.feature_name AS feature_feature_name, feature.description AS feature_description, feature.project_id AS feature_project_id
FROM feature ,返回的是列表,我们需要通过for循环取值。

Python代码:session_.query(Feature)没有加all(),那么返回的就是SQL语句
Python代码:session_.query(Feature).first() ,返回的是第一个值

根据项目id 查询项目的所有特性:

Python代码:session_.query(Feature).all()

实际执行的SQL语句:SELECT feature.id AS feature_id, feature.feature_name AS feature_feature_name, feature.description AS feature_description, feature.project_id AS feature_project_id
FROM feature

根据项目id 查询项目的所有特性:

 

参考:

https://blog.csdn.net/weixin_44505901/article/details/111034036

 
posted @ 2022-02-23 15:42  Tarzen  阅读(205)  评论(0编辑  收藏  举报