3

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

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

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

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

4

3 回答 3

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

于 2012-12-03T20:13:08.040 回答
0

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

自动创建index.yaml仅在本地发生,只是为了帮助您创建该文件并将其上传到 AppEngine。一旦该文件在服务器上,就不会自动创建或更新该文件:正如文档所解释的,除非相关索引已存在于 index.yaml 中,否则无法运行任何查询。

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

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

于 2012-12-03T20:01:58.707 回答
0

On your development server you can use the interactive console to create/instantiate/save an entity, which should cause the entity class to appear in the datastore interface, like so:

from google.appengine.ext import ndb

class YourEntityModel(ndb.Model):
    pass

YourEntityModel().put()
于 2016-05-16T23:01:51.250 回答