Thursday, March 12, 2009

02 Google App 快速入门之 Hello World!

Google App Engine 利用 CGI 与web服务器进行通信。当服务器从你的应用程序接收到请求时,它会在当前环境中根据请求数据执行应用程序,之后服务器会向客户端的标准输入输出流中写回响应数据,包括http headers和具体的内容。

让我们从开发一个显示简短信息的迷你应用程序开始吧。

创建一个简单的请求处理程序(Request Handler)

创建一个名为 helloworld 的目录。这个应用程序的所有文件都会放在这个目录下。

helloworld 目录下创建一个名为 helloworld.py 的文件,并输入下面的内容:

print 'Content-Type: text/plain' 
print '' 
print 'Hello, world!' 

上面这段Python代码向应用程序的请求返回一段包含了HTTP header信息、一个空行已经一个文本消息的 'Hello, world!'。

创建配置文件

一个App Engine包含一个名为 app.yaml 的配置文件,其中描述了哪个脚本文件被用于处理URLs。

我们需要在helloworld目录下创建这个文件并加入以下内容:

application: helloworld 
version: 1 
runtime: python 
api_version: 1  
handlers: 
   - url: /.*   
     script: helloworld.py 

这段代码描述了以下信息;

  • 应用程序的名词为 helloworld ,在你最终部署这个应用程序的时候,你必须指定一个唯一的名称。在开发阶段这个值可以是任意内容。现在我们就将他简单的设置为 helloworld
  • 我们通过version变量来设置当前应用程序的版本号为1。当你更新了应用程序的版本后,App Engine可以记住以前的版本号,这样你就有机会回滚到以前的版本。
  • runtime变量告诉App Engine现在用的运行时环境是Python,当前的App Engine版本是1。以后App Engine会支持其他语言。
  • 对于最后一行表示每一个URL请求,如果其正则表达式可以匹配到/.*(这里表示任何连接)上时,就通过 helloworld.py 脚本处理。

测试应用程序

我们在上面一节中已经编写了一个可以处理任何连接的脚本,并在配置文件中进行了设置。现在你可以通过App Engine SDK 中自带的web服务器来测试一下。

你可以通过下面的命令启动并测试刚才的代码,我们需要将helloworld的路径作为参数传递给这个命令。

google_appengine/dev_appserver.py helloworld/ 

现在web服务器应该已经运行起来了,监听端口是8080。现在输入下面的地址:

http://localhost:8080/

如果想获得有关开发环境中web服务器更多的信息,比如修改缺省的8080端口,可以查看 the Dev Web Server reference 或者在刚才的命令后加上--help参数查看。

迭代开发

你可以在编写调试代码时让web服务器一直开着。服务器会监听你的源代码目录,一旦有改变它就会根据需要重新加载代码。你现在就可以试一下:让 web服务器一直开着,然后打开helloworld.py文件把其中的Hello World!消息改成其它内容。这时刷新依稀http://localhost:8080/ 页面看看有什么变化。如果想关闭web服务器只要在web服务器运行的命令窗口按下Control+C(或者其它‘终止命令’的按键)。在学习这边指南的 过程中你可以让web服务器一直开着,如果想重启它按照上面将的步骤就可以了。

接下来

现在你已经完成了一个完整的App Engine,你完全可以把它部署到实际的网络环境中,让别人看懂你的‘Hello World!’消息。不过,在部署之前我们考虑使用web应用程序框架来方便的给它增加一些新的功能。下一节我们将介绍 使用web应用程序框架

No comments: