Python 在SQLAlchemy中,如何返回ResultProxy而不是列表?

Python 在SQLAlchemy中,如何返回ResultProxy而不是列表?,python,sqlalchemy,Python,Sqlalchemy,我在SQLAlchemy中有一个非常简单的查询,运行良好,类似于: query = session.query(MyModel) query = query.filter(MyModel.col1 == 'foo') # .. additional filters here... result = query.limit(50).all() 这将返回一个类型为list的结果——如何在不使用session.execute()的情况下返回ResultProxy对象?我正在使用query()方法来构

我在SQLAlchemy中有一个非常简单的查询,运行良好,类似于:

query = session.query(MyModel)
query = query.filter(MyModel.col1 == 'foo')
# .. additional filters here...
result = query.limit(50).all()
这将返回一个类型为
list
的结果——如何在不使用
session.execute()
的情况下返回
ResultProxy
对象?我正在使用
query()
方法来构造带有可选筛选参数的动态查询,但是
ResultProxy
对象有一些我想使用的属性(例如
rowcount


SQLAlchemy最令人困惑的一点可能是查询方法与其
execute
方法之间的差异。有人能用一个例子来澄清这一点吗?

啊,这比我想象的要简单:只需使用
session.execute(query)


为什么不能使用
len(result)
?我想要限制之前的行数,类似于
SQL\u CALC\u FOUND\u rows
SELECT FOUND\u rows()
将在MySQL中提供,但以一种与数据库无关的方式。。。但这带来了另一个问题,因为
result\u proxy.rowcount
似乎在限制之前不知道结果集的大小。完成-必须等待2天才能接受自己的答案。
query = query.limit(50).offset(0)
result_proxy = session.execute(query)
print(result_proxy.rowcount)