动态查询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() 

希望有所帮助。

+0

谢谢。有用。这相当于'query(User.id,User.name)'还是有区别? – balki