我最近有机会了解了web2py框架,虽然我之前有使用Django和Python的经验,但我对web2py所采用的查询系统感到困惑。
让我们以web2py book中的一个例子为例。
让我们以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
在一个SO评论中,web2py的作者说(db.mytable.myfield > 'A')
不能直接评估为True/False,实际上是在选择时针对每一行进行评估。我理解这就是允许将这些表达式用作查询对象甚至组合使用的原因。
我试图在网上找到答案,但没有找到,所以我的问题是:为什么这些查询表达式不会立即评估为True/False?为什么myquery的值不是True呢?我可能缺少哪些Python特性使其能够工作?