Google App Engine:使用Python查询返回实体ID

5 投票
2 回答
3620 浏览
提问于 2025-04-15 22:27

我该如何在Google App Engine中使用Python返回实体的ID呢?

假设我有以下内容

class Names(db.Model):
   name = db.StringProperty()

2 个回答

5

这个问题早就有答案了。
(我希望在不冒犯任何人的情况下,添加一些完整的例子...)

通过查询获取一个实体;只获取键比获取完整实体要更快,并且消耗更少的CPU

query = Names.all(keys_only=True)
names = query.get() # this is a shorter equivalent to `query.fetch(limit=1)`
names.id()

来自一个模板:

{{ names.id }}

GQL的替代方案,如评论中所建议的:

from google.appengine.ext import db

query = db.GqlQuery("SELECT __key__ FROM Names")
names = query.get()
names.id()
13

你可以通过一个查询来获取某个实体,比如说用一个查询。然后,你可以在这个实体上调用.key().id(),这样就能得到它的ID。如果这个实体没有数字ID,那么返回的结果会是None。想了解更多关于Key对象的信息,可以查看这里

撰写回答