检查查询是否在App Engine中返回任何内容?

时间:2012-10-26 21:43:17

标签: python google-app-engine

我有这段代码:

    q = db.GqlQuery("SELECT * FROM UserData WHERE user_id = :1", current_user.user_id())
    user_data = q.get()

    if not user_data:
        logging.error('a')
        user_data = UserData(user_id = current_user.user_id(),
                             primary_email = current_email
                             )
        user_data.put()
    else:
        logging.error(pprint.pprint(user_data))

它正在记录“None”,因为它正在运行else。不应该被“if not user_data”捕获“无”?

1 个答案:

答案 0 :(得分:0)

您看到的输出与我在本地控制台中看到的输出不同(我填写了您提供的代码中的一些空白):

from google.appengine.ext import db

class UserData(db.Model):
  user_id = db.StringProperty()

u = UserData()
u.user_id = "Foo"
u.put()

q = db.GqlQuery("SELECT * FROM UserData WHERE user_id = :1", "Bar")
user_data = q.get()

if not user_data:
  print "Not"
else:
  print "Is"

打印:

Not

也许代码的其他部分会出现意想不到的副作用?