sqlalchemy反射表后,提示Table无该属性,该如何进行程序编写

这里我将表反射出来了,可是这个return是提示么有这个属性的:


封装的代码如下:

想请教一下老师,我该如何书写代码呀

需求是啥?
是表生成类?

已经生成了这个表了,现在打算是直接用ORM的查询方法去进行过滤查询,但是却提示没有这个属性。而数据库中是有这个属性的

解决方法

  • 利用反射
from sqlalchemy import MetaData, create_engine
from sqlalchemy.orm import sessionmaker
# 用自己的数据库信息,不要照抄!!!!!!!!!!
uri = f'mysql+pymysql://{username}:{pwd}@{ip}:{port}/{database}?charset=utf8'
# 创建引擎
engine = create_engine(uri)
# 创建数据库元类对象
metadata = MetaData(engine)
# 反射
metadata.reflect()
# 拿到数据库表,键值是表名
table = metadata.tables["user_info"]
Session = sessionmaker(bind=engine)
session = Session()
# 查询
print(session.query(table).all())
# 条件查询
print(session.query(table).filter_by(id=1).first())

执行结果