Google应用引擎:使用python返回实体ID的查询

Pet*_*ter 5 python google-app-engine

如何在GAE中使用python返回实体ID?

假设我有以下内容

class Names(db.Model):
   name = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 13

您可以检索实体,例如使用查询,然后调用.key().id()该实体(None如果实体没有数字ID,则会显示; 有关您可以从对象检索的其他信息,请参阅此处Key).


ber*_*nie 5

问题早已得到解答.
(我希望在没有踩任何脚趾的情况下添加一些完整的例子...)

使用查询获取实体; 只需获取密钥比检索完整实体更快并且使用更少的CPU:

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

从模板:

{{ names.id }}
Run Code Online (Sandbox Code Playgroud)

GQL替代方案,如评论中所示:

from google.appengine.ext import db

query = db.GqlQuery("SELECT __key__ FROM Names")
names = query.get()
names.id()
Run Code Online (Sandbox Code Playgroud)