谷歌应用引擎&;Django沙盒:Shell和Web似乎在使用不同的数据存储?

谷歌应用引擎&;Django沙盒:Shell和Web似乎在使用不同的数据存储?,django,google-app-engine,google-cloud-datastore,Django,Google App Engine,Google Cloud Datastore,我对Django和Google应用程序引擎都是新手,我正在使用OSX10.6中的沙箱和GoogleAppEngineLauncher。我有一个基本的“书店”应用程序,运行于OReilly“编程谷歌应用程序引擎”一书中的教程 这里有一个bug:如果我通过web界面向数据存储添加一个新对象,那么它可以通过web界面读取,但是如果我通过shell查询数据存储,它似乎不存在。反之亦然:如果我在shell中添加一个对象,那么我可以从shell中读取它,但它不会出现在web界面中 一件相关的珍品:当我重新启

我对Django和Google应用程序引擎都是新手,我正在使用OSX10.6中的沙箱和GoogleAppEngineLauncher。我有一个基本的“书店”应用程序,运行于OReilly“编程谷歌应用程序引擎”一书中的教程

这里有一个bug:如果我通过web界面向数据存储添加一个新对象,那么它可以通过web界面读取,但是如果我通过shell查询数据存储,它似乎不存在。反之亦然:如果我在shell中添加一个对象,那么我可以从shell中读取它,但它不会出现在web界面中

一件相关的珍品:当我重新启动计算机时,两个数据存储中的所有数据都消失了

任何想法或理论都是受欢迎的。谢谢


=T=

如果您使用远程API外壳并将其指向您正在计算机上运行的实例,则应该获得相同的数据存储。目前还不清楚你是如何通过“shell”访问你的应用程序的,但你似乎正在创建第二个实例来访问你的应用程序


重新启动计算机时,数据从数据存储中消失,因为默认情况下,数据存储文件是在/tmp中创建的;您可以在运行dev_appserver.py时为其指定另一个位置(重新启动时系统不会为您清理的位置)。

没错,
python manage.py
将让您访问应用程序的另一个实例(和另一个数据存储),而不是启动器。如果希望应用程序具有命令行界面,请参阅,或仅从
python manage.py runserver
而不是从启动器运行dev服务器,然后继续使用
manage.py shell


我被同样的数据存储删除所折磨。出于某种原因,AppEngine需要小心地关闭商店——要让数据存储正确地保存到磁盘,您必须点击“停止”(如果从dev_appserver.py命令运行,则点击ctrl-c,通常在linux上)。如果在正确关闭前关闭计算机,数据存储将被删除

我通过在我的应用程序的主目录中运行“python manage.py shell”来访问shell。您如何运行服务器?我认为“python manage.py runserver”应该为您提供与使用manage.py shell相同的数据存储,而手动运行dev_appserver.py将为您提供不同的数据存储。不过,这也可能取决于您使用的任何帮助程序/修补程序。我一直在通过GoogleAppEngineLauncher应用程序运行服务器。我将尝试从命令行运行它,并确保它和shell都指向同一个数据存储。如何创建新的数据存储?当我将dev_appserver指向一个空文件或目录时,它会抛出错误。我可以通过将数据存储从/tmp复制到另一个目录,然后在运行appserver或shell时指定新位置来解决这个问题。这似乎解决了问题!你在用什么来帮助django吗?比如谷歌应用引擎django,django Nonl,应用引擎补丁,或者其他什么?每个都有一种指定数据存储文件位置的方法。我不知道那些东西是什么。