学习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