无法从数据存储区GAE中检索数据

时间:2015-12-23 05:55:32

标签: python google-app-engine google-cloud-datastore

我有一个班级用户

class User(db.Model):
  userId = db.StringProperty()
  email = db.StringProperty()
  channelToken = db.StringProperty()

我用

插入了一条记录
user = User(key_name='1',userId='1',email='abc@gmail.com',channelToken='123')
user.put()

完美插入。但是现在当我试图检索它时,它显示错误

channelToken= db.GqlQuery("SELECT channelToken FROM User WHERE userId=1") 
logging.info("Found Channel : " + str(channelToken))

显示

<google.appengine.ext.db.GqlQuery object at 0xfe112370>" is not a string.

我做错了吗?

2 个答案:

答案 0 :(得分:2)

参考https://cloud.google.com/appengine/docs/python/datastore/gqlqueryclass#GqlQuery

q = db.GqlQuery("SELECT channelToken FROM User WHERE userId=1") 
channelToken = q.get()

日志记录提供了一个内存位置,因为GqlQuery返回一个对象。

答案 1 :(得分:1)

您也可以使用gql

channelToken = User.gql("WHERE userId = :1", "1").get().channelToken

删除所有userId = 1

的记录
users = User.gql("WHERE userId = :1", "1").fetch()
for user in users:
    user.key.delete()