动态查询sqlalchemy中的列子集
问题描述:
假设表中只需要两列(名称和ID)。我想下面的代码的东西:动态查询sqlalchemy中的列子集
session.query(User.id, User.name).all()
但是,如果列名是动态的,
def get_data(table, columns):
return session.query(*(getattr(table, column) for column in columns)).all()
但上面的一个长相丑陋。有更好的推荐方法吗?
答
你可以使用select():
columns = ['id', 'name']
print session.query(select(from_obj=User, columns=columns)).all()
希望有所帮助。
谢谢。有用。这相当于'query(User.id,User.name)'还是有区别? – balki