原作者:徐明
原文链接地址:http://xuming.net/gae-tutorial
一、介绍什么是Google App Engine
GAE:Google App Engine 使用GAE,你不用再买主机,不用再维护主机,可以直接把网站程序(现在支持Python与Jave)上传到Google的空间。欢迎使用 Google App Engine! 创建一个Google App Engine应用非常简便,只需要花费你几分钟时间. 你可以很方便的创建你的网站应用:直接上传并分享,不需要进行任何的修改和注释。
在这个指导里,我们将创建一个简单的留言本,让用户可 以发表留言。并且支持匿名和Google帐号两种方式发表留言。
这个留言本程序将演示如何使用Google的数据存储,集成Google账户系统,如何使用一个简单的Python Web framework来调试GAE网站。并且还将演示如何使用Django的模版引擎。
二、开发环境
(本文译自:Google App Engine Getting Started)
Google 提供了一个Google App Engine 软件开发包(SDK),用于让开发者进行网站应用程序开发或上传已经完成的应用。
这个 开发包包含:
- 一个web服务程序,用来模拟App Engine应用环境
- 一个本地版的数 据存储方案
- 本地模拟的Google帐号集成
- 支持使用Api来分析URL和发送邮件
- 这个开发包可以运行在所有安装了Python2.5的机器上,并且支持Windows, Mac OS X 和Linux系统。
因为这个开发包是以Python2.5为基础的,所以你必须先要在你的机器上安装Python2.5(必须是2.5版 本).Mac OS X 10.5 用户可能已经安装了Python2.5,某些版本的Linux自带Python环境,但是版本可能比较低,需要升级成2.5版本。
接下 来:下载并安装App Engine SDK
在这个入门教程中,我们需要用到下面的两个命令:
- dev_appserver.py, 本地开发服务程序
- appcfg.py, 上传并发布你的应用
Windows或Mac OS X的安装程序会将这两个命令放到命令行运行路径中。在安装结束后,你可以直接通过命令行执行。
如果你使用的是Zip压缩包格式的 SDK,你可以
google_appengine
目录下找到它们。
三、Hello world
Google App Engine 应用通过 CGI 标准协议与服务器通讯.这是一个标准的Http处理流程,Web服务接受到客户端发来的Get或Post请求,web服务器把请求转发给你的应用程序,由 应用程序来处理要输出的内容。
为了更好的理解这个过程,下面就开始开发我们经典的Hellow World应用程序吧。在这一章,仅仅只是实现显示一些简单的信息的功能。
创建一个简单的 Request Handler
首先创建一个名为
helloworld
的文件夹。 除非特殊说明,以后所有关于这个应用程序的文件都将放在这个文件夹里面。在
helloworld
文件夹里, 创建一个新文件helloworld.py
,文件内容如下:print 'Content-Type: text/plain'
print ''
print 'Hello, world!'这个Python 脚本处理一个request请求,并且设置一个Http header,输出一个空行和一段信息
Hello, world!
.创建配置文件
每个App Engine application 都包含一个名为
app.yaml
的配置文件。 在这个配置文件中,可以设置具体的某个URL需要用哪个Python脚本来处理.现在,在
helloworld
文件夹中,创建一个新的app.yaml
文件,输入以下内容:application: helloworldversion: 1runtime: pythonapi_version: 1handlers:- url: /.*script: helloworld.py这个配置文件描述了以下内容::
- 这个应用程序的标识是
helloworld
. 这个标识需要和你在App Engine网站上创建的应用程序标识保持一致。在开发期间你可以使用任何你喜欢的名字,但是上传的时候,必须要和你在App Engine 注册的标识保持一致。现在,我们把它设置为helloworld
.- 你的应用程序的版本号为
1
,如果你在上传应用之前修改了这个编号, App Engine 将会自动保留前一个版本的副本,以方便你可以在管理平台中将当前版本恢复成原来的版本。- 该应用运行在
python
环境, 环境版本是 1. 目前只有Python可选,将来会提供更多的运行环境和开发语言.- 所有符合正则表达式
/.*
(所有URL) 的请求,都由helloworld.py
脚本来处理.该配置文件使用 YAML语 法. 关于该配置文件的更多选项, 请参考 the app.yaml reference.
测试应用程序
现在这个应用程序已经基本上完整了。 你可以在本地App Engine SDK环境中进行模拟运行测试。
首先,指定应用路径为
helloworld
目录,使用下面的命令启动测试环境Web服务程序,:google_appengine/dev_appserver.py helloworld/这个Web服务程序将监听8080端口. 你可以在浏览器中输入以下地址进行测试:
关于这个web服务程序的更多选项(如怎样修改默认端口等), 请查看the Dev Web Server reference, 或者使用命令行选项
--help
.无需中断你的开发
在开发过程中,你不需要不停的重启Web服务程序。Web服务程序可以自行判断哪些脚本文件已经被修改过了,并且重新加载这些脚本。
试一试: 不要关闭web服务程序, 编辑
helloworld.py
将Hello, world!
修改成其他内容. 重新访问http://localhost:8080/ ,看看是不是您的修改已经生效了!要关闭Web服务程序,您只需在控制台中按下 Control-C (或其他有效的 "break" 功能键).