【发布时间】:2020-05-13 03:12:42
【问题描述】:
如何为with_entities 选项提供动态输入?
目前我必须这样做:
columns = [DataModel.col1, DataModel.col2, ...]
data = DataModel.query.order_by(DataModel.id.desc()).with_entities(*columns).first()
但是,如果我将 col 名称设为 query-string parameters 并且必须动态定义它,我该怎么办?
编辑编辑编辑 以这种方式解决了它: 在我的模型中,我定义了类方法:
@classmethod
def find_by_filter(cls, attr):
search_columns = [getattr(cls, i) for i in attr]
return cls.query.order_by(cls.id.desc()).with_entities(*search_columns).first()
然后我可以通过这种方式从我的 Rest API 调用它:
liste = ["column 1", "column2", "column3", "column4"]
data = DataModel.find_by_filter(liste)
【问题讨论】:
标签: python sqlalchemy flask-sqlalchemy