在 Python 上的 Google App Engine 中按实体键名过滤
Posted
技术标签:
【中文标题】在 Python 上的 Google App Engine 中按实体键名过滤【英文标题】:Filtering by entity key name in Google App Engine on Python 【发布时间】:2011-02-02 10:14:49 【问题描述】:在 Google App Engine 上使用 Python 查询数据存储,可以使用 GQL 或 Entity.all() 进行过滤。所以例如这些是等价的
gql = "SELECT * FROM User WHERE age >= 18"
db.GqlQuery(gql)
和
query = User.all()
query.filter("age >=", 18)
现在,还可以通过键名查询事物。我知道在 GQL 中你会这样做
gql = "SELECT * FROM User WHERE __key__ >= Key('User', 'abc')"
db.GqlQuery(gql)
但是你现在如何使用过滤器来做同样的事情呢?
query = User.all()
query.filter("__key__ >=", ?????)
【问题讨论】:
【参考方案1】:from google.appengine.api.datastore import Key
query.filter("__key__ >=", Key.from_path('User', 'abc'))
【讨论】:
【参考方案2】:对我来说,类似的方法有效,而“from_path”功能在我的情况下不起作用,这个方法有效:
from google.appengine.api.datastore import Key
key = Key(your_string_with_key)
query.filter("__key__ = ", key)
【讨论】:
以上是关于在 Python 上的 Google App Engine 中按实体键名过滤的主要内容,如果未能解决你的问题,请参考以下文章
Google App Engine 上的 python 请求不适用于 HTTPS
Google Web Toolkit (GWT) rpc 到 Google App Engine (GAE) 上的 Python 服务器
Google App Engine 上的错误 Python 2.7 - 无法使用 CGI 处理程序启用线程安全
Google App Engine 上的 Production App 突然无法访问 Google Cloud Storage
Python 3.7 上的 Flask 比具有 Google App Engine 标准环境的 Python 2.7 上的 webapp2 要求更高(也更昂贵)