0

我对 Google App Engine 非常非常陌生,但我需要管理一个使用它的基于 WebApp2(即 Python)的网站。具体来说,我需要过滤查询集并删除某些模型实例。

在本地构建站点很好。在本地,我可以通过点击来获取模型

http://localhost:8000/console

在我的浏览器中。这会调出“交互式控制台”,我可以在其中放置一些代码,例如

from application.models.user import User

它会起作用。从那里我可以在数据存储中创建/删除用户对象,因此这个本地交互式控制台似乎具有类似 ORM 的功能。(我来自 Django 背景,所以这让我想起了)。

但是,我似乎在实时网站上没有此选项。我希望能在

https://console.cloud.google.com/home/dashboard?project=<my project>

当我找到“激活谷歌云外壳”的控件时,我以为我找到了它这会在 Web 服务器上打开一个命令行,但这里似乎不存在该网站的代码库,因此启动 Python cli 并尝试像我在本地执行的操作那样导入应用程序模型是行不通的。即使我可以,我怀疑它会是一个类似于 Django 的 ORM,就像它在我的本地构建中的方式一样。

我是否以错误的方式思考这个问题?您如何通过 GAE / WebApp2 网站中的后端创建/过滤/删除/等数据存储对象?“谷歌云壳”甚至是答案的一部分吗?

4

2 回答 2

1

使用 remote_api_shell。您在应用程序代码所在的本地运行它。然后您可以导入您的模型,执行相同的查询等,并添加修改/删除实体。我经常将它用于一系列任务。使用此方法更新超过 100K 的记录可能会变慢。

https://cloud.google.com/appengine/docs/standard/python/tools/remoteapi

于 2017-12-09T23:15:59.650 回答
1

要在云 shell 中访问您的应用程序代码,一种选择是在 shell 中创建应用程序存储库的本地副本。举个例子(解决一个不同的问题,真的),您可以查看Google Cloud:如何部署镜像存储库。但我不能 100% 确定这是否会自动让您访问应用程序的数据存储区。值得一试恕我直言。

另一种选择是将所需的操作作为处理程序操作挂钩到您的应用程序本身并从那里执行它们。最终通过身份验证隐藏/保护/限制,例如仅适用于管理员用户。这是我在对实体模型进行更改时不时需要的一次性数据存储迁移。

最后,但不是真正的编程访问 - 您可以使用开发人员控制台中的数据存储页面手动查找、读取和修改您的实体,请参阅 从控制台管理数据存储

于 2017-12-08T17:33:48.623 回答