手动将实体添加到空Google App Engine DataStore

时间:2012-12-03 18:55:38

标签: google-app-engine google-cloud-datastore

从我通过创建一个简单项目确认的the tutorial,在运行查询时自动生成index.yaml文件。我进一步观察到,在此之前,管理控制台(http://localhost:8080/_ah/admin/datastore)没有显示数据存储。

我的问题是:我有一个项目,可以通过数据存储管理控制台手动添加数据/实体。该网站仅用于显示/检索数据,而不是用于向数据存储添加数据。

如何让我的数据存储显示在控制台上以便我可以添加数据?

是的,尝试通过浏览器从空数据存储中检索,这样我就可以填充index.yaml等等。但这不起作用。

3 个答案:

答案 0 :(得分:1)

最简单的方法可能就是在项目文件夹中创建一个小的python脚本,并在脚本中创建实体。将其分配给您将使用一次的URL处理程序,然后禁用。

你甚至可以从python shell中完成它。它对调试非常有用,但您需要将其设置一次。 http://alex.cloudware.it/2012/02/your-app-engine-app-in-python-shell.html

要在制作时执行相同操作,请使用remote_api: https://developers.google.com/appengine/articles/remote_api

答案 1 :(得分:0)

这是一个非常奇怪的问题。

index.yaml的自动创建仅在本地进行,只是帮助您创建该文件并将其上传到AppEngine。在服务器上没有自动创建或更新该文件:正如文档所解释的那样,除非index.yaml中已存在相关索引,否则不能运行任何查询。

由于您需要索引来运行查询,因此您必须在本地创建该文件 - 手动创建或通过对开发数据存储区运行相关查询 - 然后将其与您的应用程序一起上传。

但是,这与数据存储区查看器是否出现在管理员中没有任何关系。在线,它将始终显示,但只显示实际在商店中有实例的实体种类。数据存储区查看器对您的模型一无所知,它只知道数据存储区中存在的种类。

答案 2 :(得分:0)

在开发服务器上,您可以使用the interactive console创建/实例化/保存实体,这应该会导致实体类出现在数据存储区界面中,如下所示:

from google.appengine.ext import ndb

class YourEntityModel(ndb.Model):
    pass

YourEntityModel().put()