【发布时间】:2012-07-13 17:32:17
【问题描述】:
这可能是一个一般性的 Python 问题,而不是 AppEngine 特定的问题。我无法确定我的 Google AppEngine GQL 查询是否返回对象。 我是 AppEngine 和 python 的新手,所以这可能是一个简单的问题
我正在使用python代码:
user = db.GqlQuery("SELECT * FROM UserStore WHERE user_id = 1234567890")
为了检查是否有用户返回,我一直在尝试:
if(user in locals()):
self.response.out.write('User Exists: ' + user.user_id)
return
else:
CreateTheUser()
但我现在认为这不是最好的方法。有没有更好的方法来判断db.GqlQuery 语句是否返回了用户(或用户列表)?
【问题讨论】:
-
if user in locals()不符合您的预期,原因有几个。首先,检查locals()将告诉您变量是否已定义——它总是如此,因为您刚刚分配给它。其次,您实际上是在检查用户变量的 value 是否作为本地键存在 - 您尝试做的应该是if 'user' in locals():。例如,foo='hello'; foo in locals()等价于'hello' in locals(),not 等价于'foo' in locals()!