【问题标题】:What does a GQL Query ReturnGQL 查询返回什么
【发布时间】:2015-10-10 23:12:54
【问题描述】:

我一直在使用 Google App Engine 开展一个项目。我一直在设置用户,必须检查用户名是否被占用。
我用下面的代码尝试测试是否被取走

usernames = db.GqlQuery('select username from User') 
taken = username in usernames 

这从未捕获到重复的用户名。我在 GQL 查询行上尝试了一些变体。我尝试使用 .get() 导致错误,因为它返回了不可迭代的内容。我还尝试将list() 放在请求周围,它返回了相同的错误。我尝试写 usernames 的值,但从未得到任何回应。如果它返回一个查询实例,那么有没有办法把它变成一个列表或元组?

【问题讨论】:

    标签: python google-app-engine gql


    【解决方案1】:

    对于初学者,您应该重新访问文档https://cloud.google.com/appengine/docs/python/datastore/gqlqueryclass?hl=en

    db.GqlQuery('select username from User') 调用的是构造函数而不是函数,因此它返回GqlQuery 对象的实例。请参阅上面提到的文档。

    其次,由于最终的一致性,您正在做的事情永远不会可靠地工作。请阅读https://cloud.google.com/appengine/docs/python/datastore/structuring_for_strong_consistency 了解原因。

    最后,您是从 appengine 开始的,因此请远离 db 并使用 ndb,除非您拥有重要的现有代码库。

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 1970-01-01
      • 2015-01-26
      • 2014-06-05
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多