Google app engine 访问google app engine';s数据存储
我看了一下,关于从数据存储访问id。现在我尝试执行类似于Google app engine 访问google app engine';s数据存储,google-app-engine,Google App Engine,我看了一下,关于从数据存储访问id。现在我尝试执行类似于post.key().id()的操作,但它没有返回我想要的数字id 如何访问google数据存储中实体的数字ID。我正在使用GAE1.8和Python 2.7。我相信从我刚才向大家展示的问题开始,已经发生了很多变化 这都是为了给我的实体post(一篇博客文章)创建永久链接 代码如下: # coding=utf-8 from google.appengine.ext import db class BlogPost(db.Model):
post.key().id()
的操作,但它没有返回我想要的数字id
如何访问google数据存储中实体的数字ID。我正在使用GAE1.8和Python 2.7。我相信从我刚才向大家展示的问题开始,已经发生了很多变化
这都是为了给我的实体post
(一篇博客文章)创建永久链接
代码如下:
# coding=utf-8
from google.appengine.ext import db
class BlogPost(db.Model):
title = db.StringProperty(required=True)
content = db.TextProperty(required=True)
created_at = db.DateTimeProperty(auto_now_add=True)
def url(self):
return '/blog/%s' % self.key().id()
如果您有任何帮助,我们将不胜感激。这是获取数字id的方法 如果没有,则表示已使用id字符串创建实体 你可以试试
key().id\u或\u name()
返回数据实体的名称或数字ID(以其具有的为准),如果实体既没有名称也没有数字ID,则返回无
如果从
id\u或
中未获得任何值,则表示在创建实体时,实体尚未被put()
指定一个祖先键,以及字符串名称或数字id中的一个
如果使用字符串创建,则没有数字id
您可能需要name(),或者如果您不确定id\u或\u name()的话
以下是文档:它返回什么?自从你链接到这个问题以来,没有什么重要的变化。@Greg:首先感谢你的回答。它返回整个对象
这在模板中起作用,但当我执行self.key().id\u或_name()
时,它会给我这样的信息:
看看你得到了什么。您拥有该对象,但代码试图访问blogpost对象的“url”方法,但未调用该方法。所以我假设id()也可以工作,只是你从来没有调用过url方法。很抱歉听起来很愚蠢,但我该怎么办呢?我有点困惑。一个代码示例将不胜感激。那么您是如何使用BlogPost.url的呢。我看不到模板。您没有提供如何呈现页面的示例。Arrite已经解决了这个问题。我只需要做,db.key.from_path('BlogPost'int(key))
来获取密钥,然后只需db.get(key)