Mat*_*agg 98 python sqlalchemy flask-sqlalchemy
如何使用模型在查询中指定我想要的列(默认选择所有列)?我知道如何使用sqlalchmey会话:session.query(self.col1)但是我如何使用模型?我做不到SomeModel.query().有办法吗?
Dav*_*one 185
您可以使用该with_entities()方法来限制要在结果中返回的列.(文件)
result = SomeModel.query.with_entities(SomeModel.col1, SomeModel.col2)
Run Code Online (Sandbox Code Playgroud)
根据您的要求,您还可以找到有用的延迟.它们允许您返回完整对象,但限制来自电线的列.
Sal*_*lil 55
session.query().with_entities(SomeModel.col1)
Run Code Online (Sandbox Code Playgroud)
是相同的
session.query(SomeModel.col1)
Run Code Online (Sandbox Code Playgroud)
对于别名,我们可以使用.label()
session.query(SomeModel.col1.label('some alias name'))
Run Code Online (Sandbox Code Playgroud)
Vla*_*den 24
你可以使用load_only函数:
from sqlalchemy.orm import load_only
fields = ['name', 'addr', 'phone', 'url']
companies = session.query(SomeModel).options(load_only(*fields)).all()
Run Code Online (Sandbox Code Playgroud)
'公司'是你的模型(在你的情况下是SomeModel)
van*_*van 10
您可以使用Model.query,因为Model(或通常是其基类,特别是在使用声明性扩展的情况下)被分配Sesssion.query_property.在这种情况下,Model.query相当于Session.query(Model).
我不知道修改查询返回的列的方法(除了添加更多使用add_columns()).
所以你最好的拍摄是使用Session.query(Model.col1, Model.col2, ...)(如Salil所示).
| 归档时间: |
|
| 查看次数: |
90052 次 |
| 最近记录: |