我们假设你有这段代码:
products = session.query(Products)
query = products.filter(Products.productVendor == 'Classic Metal Creations')
for q in query:
print q
何时查询数据库?在这里查询数据库的次数是多少次?
所以举个例子。当我们在filter()
上执行products
时,我们是否只是在原始查询的结果集上执行客户端操作?
答案 0 :(得分:1)
当您遍历query
,即行for q in query
时,实际上会查询数据库。这包括在查询中调用all()
,first()
,scalar()
等。 filter()
只能生成性地修改查询以包含过滤器。