在Python的Google App Engine中按实体关键字过滤

15 投票
2 回答
6104 浏览
提问于 2025-04-15 21:02

在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__ >=", ?????)

2 个回答

3

对我来说,有一种类似的方法有效,而“from_path”这个函数在我的情况下不管用,但这个方法可以:

from google.appengine.api.datastore import Key

key = Key(your_string_with_key)
query.filter("__key__ = ", key)
16

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像是给程序设定了一些规则,只有当这些规则被满足时,程序才会继续进行。比如说,如果你想让程序在用户输入“你好”时,才显示“你好,世界!”,那么你就需要用到条件判断。

条件判断就像是一个分岔路口,程序会根据你设定的条件选择不同的路径。如果条件成立,程序就会走一条路;如果条件不成立,程序就会走另一条路。这种方式可以让程序更加灵活,能够根据不同的情况做出不同的反应。

在代码中,条件判断通常用一些关键字来表示,比如“if”(如果)和“else”(否则)。通过这些关键字,我们可以告诉程序在什么情况下该做什么事情。

总之,条件判断是编程中非常重要的一部分,它帮助我们控制程序的执行流程,让程序能够根据不同的输入做出相应的反应。

from google.appengine.api.datastore import Key
query.filter("__key__ >=", Key.from_path('User', 'abc'))

撰写回答