Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 访问google app engine';s数据存储_Google App Engine - Fatal编程技术网

Google app engine 访问google app engine';s数据存储

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):

我看了一下,关于从数据存储访问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):
    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)