在我当地的Google应用引擎开发环境中,我想使用ipython shell,尤其是能够查看包含通过dev_server.py
创建的数据的模型,
非常类似于django' manage.py shell
命令的工作原理。
(这意味着应该在修复sys.path
并且读取和分析app.yaml
并且本地数据存储已准备好之后启动ipython shell)
对此有任何简单的解决方案吗?
答案 0 :(得分:7)
对于初学者,您可以将应用程序根目录和SDK根目录(google_appengine
)放在Python路径中。您还需要一些像yaml
这样的库,可以从SDK的lib
目录中安装或添加到库路径中。然后你可以导入模块并调用一些功能。
>>> import sys
>>> sys.path.append('/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine')
当然,只要代码路径尝试进行服务调用,库就会引发异常,说它没有绑定任何东西。要将服务库绑定到测试存根,请使用测试平台库:
>>> from google.appengine.ext import testbed
>>> tb = testbed.Testbed()
>>> tb.activate()
>>> tb.init_datastore_v3_stub()
>>> from google.appengine.ext import db
>>> import models
>>> m = models.Entry()
>>> m.title = ‘Test’
>>> m.put()
要告知数据存储区测试存根使用开发服务器的数据存储区文件,请将文件路径作为init_datastore_v3_stub()
参数传递给datastore_file
。有关详细信息,请参阅google.appengine.ext.testbed
中方法的文档注释。
有关测试平台的更多信息:https://developers.google.com/appengine/docs/python/tools/localunittesting
答案 1 :(得分:1)
基本上你需要使用它:https://developers.google.com/appengine/articles/remote_api
对于IPython支持,您有两种选择:
(1)如果你正在使用Python 2.7(和IPython 0.13),你需要使用它来嵌入一个IPython shell:
from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell
shell = TerminalInteractiveShell(user_ns=namespace)
shell.mainloop()
(2)如果你正在使用Python 2.5(和IPython 0.10.2),你需要使用这一行来嵌入一个IPython shell:
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed(user_ns=namespace, banner=banner)
ipshell()
这是我使用的那个:https://gist.github.com/4624108所以你只需输入..
>> python console.py your-app-id
答案 2 :(得分:0)
运行 dev_appserver.py 后 你会得到
starting module "default" running at: http://127.0.0.1:8080
Starting admin server at : http://localhost:8000
所以基本上你要做的就是访问http://localhost:8000,你会发现"交互式控制台"你可以用它来玩