谷歌应用引擎(使用构建)和 Pyramid

这只是开发在谷歌上运行的应用程序的一种方法 App Engine. This one uses buildout . For a different approach, you may want to look at 谷歌应用引擎标准和 Pyramid.

安装 Pyramid 式脚手架

让我们一步一步来。

你可以得到 pyramid_appengine 从PyPI通过 pip 正如您通常会使用其他任何python包一样,但是为了减少系统安装的python包与用于自己开发的工具集成的可能性,您应该将其安装在本地 virtual environment

创建虚拟环境

更新分发

$ sudo pip install --upgrade distribute

安装virtualenv

$ sudo pip install virtualenv

创建虚拟环境

$ virtualenv -p /usr/bin/python2.7 --no-site-packages --distribute myenv

在虚拟环境中安装 Pyramid

$ myenv/bin/pip install pyramid_appengine

成功安装后,可以使用名为“AppEngine_Starter”的新项目模板。

To get a list of all available templates.

$ myenv/bin/pcreate -l

为项目创建骨架

您可以使用“appengine-starter”项目框架创建项目框架,就像使用任何其他项目框架一样。

$ myenv/bin/pcreate -t appengine_starter newproject

一旦成功运行,您将有一个新的 buildout 项目目录。应用程序引擎应用程序源位于newproject/src/newproject。

如果您愿意,可以使用任何可用的版本控制工具将此构建目录添加到版本控制中。

启动构建

在对新的buildout目录执行任何操作之前,您需要引导它,在本地安装buildout,以及管理项目依赖关系所必需的一切。

与所有构建一样,它可以通过运行以下命令进行引导。

~/ $ cd newproject
~/newproject $ ../bin/python2.7 bootstrap.py

通常只需执行一次此操作即可生成buildout命令。见 buildout documentation 更多信息。

运行建立

和所有的构建一样,在它被引导之后,会用一个新的构建命令创建一个“bin”目录。运行此命令是为了安装基于newproject/buildout.cfg的内容,您可以根据需要进行编辑。

~/newproject $ ./bin/buildout

在这种特殊的情况下,当运行时,它会处理你需要做的几件事。

  1. 在parts/google-app engine中安装app-engine-sdk more info

  2. 将appengine sdk中的工具放在buildout的“bin”目录中。

  3. 下载/安装项目的依赖项,包括 Pyramid 和应用引擎SDK尚未提供的所有依赖项。 more info

  4. 适用于在newproject/parts/newproject处部署到应用程序引擎的目录结构。 more info

  5. 下载/安装支持单元测试的工具,包括 pytestcoverage .

运行测试

您的项目配置为运行文件中以“test”开头的所有测试(例如:newproject/src/newproject/newproject/test_views.py)。

~/newproject/ $ cd src/newproject
~/newproject/src/newproject/ $ ../../bin/python setup.py test

您的项目包含 unit testing tools 由app engine sdk提供,用于为每个测试设置和拆卸app engine环境。除此之外,运行单元测试将保留您的项目 index.yaml 最新的。因此,维护一个完整的测试套件将是确保应用程序已准备好部署的最佳机会。

您可以通过编辑newproject/src/newproject/newproject/conftest.py来调整如何为测试初始化应用引擎API。

在本地运行应用程序

您可以使用app engine sdk运行应用程序 Development Server

~/newproject/ $ ./bin/devappserver parts/newproject

Point your browser at http://localhost:8080 看它能工作。

部署到应用程序引擎

Note: Before you can upload any appengine application you must create an application ID 为了它。

要将应用程序上载到应用程序引擎,请运行以下命令。有关更多信息,请参阅应用程序引擎文档 appcfg

~/newproject/ $ ./bin/appcfg update parts/newproject -A newproject -V dev

Point your browser at http://dev.newproject.appspot.com 看它能工作。

上面的命令很可能对您不起作用,这只是一个例子。“-A”开关表示 Application ID 要部署并覆盖app.yaml中的设置,请使用注册应用程序时创建的应用程序ID。“-v”开关指定版本并覆盖app.yaml中的设置。

您可以在 admin console . 但是,您也可以指定要在URL中命中的应用程序版本,如…

http://<app-version>.<application-id>.appspot.com

当您开始管理应用程序的开发,同时支持当前版本时,在各种各样的场景中,这非常方便。