在SqlAlchemy中,给定一个Select对象,用该对象获取Model实例的正确方法是什么?
例如,当我想要表中最新条目的实例时,我会对表的SqlAlchemy模型的子类做一些笨拙的事情:
Base = DeclarativeBase()
class TableModel(Base)
...
class MyTableModel(TableModel)
@classmethod
def get_most_recent(cls):
qry_object = sqlalchemy.select([cls.__table__]
).order_by(cls.file_dt.desc()
).limit(1)
return cls.instance_from_query(qry_object)
@classmethod
def instance_from_query(cls, qry_object):
session = get_session()
result = session.execute(qry_object).fetchone()
result_dct = dict((k, v) for k, v in result.items())
instance = cls(**result_dct)
return instance
$ hat是执行此操作的正确方法?这不是最好的方法,但是我没有在SqlAlchemy文档或代码中找到正确的方法。
(而且,要获取返回多个行的查询实例吗?比如说most_recent_three
和select(...).limit(3)
吗?)
谢谢。