我剛剛有機會看看web2py框架,雖然我對Django有一些以前的經驗,對於普通的Python也有一些經驗,但我從web2py所使用的查詢系統中無法理解。web2py查詢表達式如何工作?
讓我們從web2py book
db = DAL('sqlite://storage.db')
myquery = (db.mytable.myfield > 'A')
myset = db(myquery)
rows = myset.select()
for row in rows:
print row.myfield
In a SO comment的web2py筆者這個例子說,(db.mytable.myfield > 'A')
不直接評估爲True/False,並且它實際上是在選擇時每行評估。我明白這是允許這些表達式用作查詢對象,甚至可以組合使用的東西。
我試着找到這個在線答案,但不能,所以這裏是我的問題:這些查詢表達式如何不馬上評估爲True/False?爲什麼myquery的價值不是真的?我可能丟失了什麼Python功能可以使用這個功能?