我对SQLAlchemy进行了简单的设置,目前它的设置是与现有数据库连接,如下所示:
self.users = db.Table('users', self.metadata, autoload=True, autoload_with=self.engine)
它连接到现有的表,但是当我连接到不是由SQLAlchemy创建的表时,我不知道如何检查现有的行。
我试过的:
session.query(self.users.query.filter(self.users.id == 1).exists()).scalar()
我发现表对象没有属性查询
您的错误意味着表
对象没有查询
属性,因为SQLAlchemy有单独的查询
API。
请参阅sqlachemy中的“如何查询表”一文
好吧,对于所有想知道的人来说,解决办法如下:
>
选项
check_existing = self.users.select().where(self.users.c.username == "admin")
check_existing_result = session.execute(check_existing).fetchall()
if len(check_existing_result) == 0:
print('empty')
else:
print('found')
选项
query = session.query(self.users).all()
for obj in query:
if obj[1] == 'admin':
print('true')
选项
check_existing = self.users.select().where(self.users.c.username == "admin")
check_existing_result = session.execute(check_existing).scalar()
if check_existing_result == None:
print('empty')
else:
print('true')
由于执行了sqlalchemy exists查询