【发布时间】:2015-07-22 21:46:49
【问题描述】:
由于我最近才开始学习使用 sqlalchemy,所以下面代码的结果让我对 sqlalchemy 何时执行查询感到困惑:
query = db.session.query(MyTable)
query = query.filter(...)
query = query.limit(...)
query = query.offset(...)
records = query #records=query.all()
for r in records:
#do something
注意这一行
records = query #records=query.all()
似乎在使用 "query" 和 "query.all()" 时它会带来相同的正确结果(存储在变量“records”中),我想知道什么时候查询执行了吗?
如果在第一行执行"db.session.query(MyTable)",此时结果集可能很大;如果在第五行 “records = query” 中,根本没有函数调用,怎么会发生这种情况?
【问题讨论】:
标签: sql sqlalchemy