云计算 频道

中文版Google App Engine入门指南(1)

  【IT168 资讯】本指南将介绍如何开发以及展示一个简单的Google App Engine项目。这个示例项目-一个用户留言簿-将会向你展示如何使用Google App Engine的多项服务,包括数据库服务和谷歌帐户服务。
Google App Engine入门指南包括以下几个部分:

介绍
编程环境
Hello, World!
使用webapp框架
使用Google帐户服务
用webapp处理表单
使用数据库存储
使用模板
使用静态文件
上传你的程序

介绍

欢迎来到Google App Engine!创建一个App Engine应用程序很简单的,只需要几分钟的时间。而且是免费的,只要你上传你的程序,你的网站就可以和用户见面了,不需要任何付款和投入。

在Google App Engine入门指南中,你将会创建一个用户留言簿,它可以让用户在公共的留言板上发表留言。用户可以匿名留言,也可以使用他们的Google帐户留言。

这个留言簿程序将会向你展示如何使用App Engine的数据库存储,如何将一个App Engine和谷歌帐户进行整合,以及如何使用一个简单的Python网站框架(在App Engine中叫做webap)。这个小程序还将会展示如何使用Django模板引擎。

编程环境

你要通过App Engine的software development kit (SDK)来开发,上传你的Google App Engine程序。

这个SDK里包括了一个网站服务器(web server)程序,用来模拟App Engine的环境,包括一个本地版的数据库,Google帐户,以及获取远程地址(URLs)和从你的本地计算机发送邮件这一些列App Engine的API。本SDK需要运行在Python 2.5上,Python 2.5的各个版本支持Windows,Mac OS X和Linux。

如果需要,可以从Python的官方网站下载适合你的操作系统的Python 2.5并安装在你的电脑上。Mac OS X 10.5 Leopard用户的电脑上默认已经安装好了Python 2.5。

下载App Engine SDK,然后按照下载页面上的指示将SDK安装在你的计算机上。

在本入门指南中,你将会用到SDK中的两个命令:

dev_appserver.py, 开发版网站服务器
appcfg.py, 用来上传你的程序到 App Engine网站
对于Windows用户:App Engine SDK的Windows安装程序会将这些命令添加到命令path里,在安装之后,你可以直接在命令行中使用这些命令。

对于Mac用户:Google App Engine Launcher会将这些命令包含在程序当中,你可以将这些命令添加到命令path通过选择"GoogleAppEngineLauncher"菜单里的“Mak Symlinks...”。或者,你可以直接用Launcher来运行开发服务器以及展示你的网页程序。

如果你使用的是Zip存档版的SDK,,你将在google_appengine目录中找到相应的python程序。

Hello, World!

Google App Engine使用CGI标准来和网站服务器进行交互。当服务器接收到来自你的应用程序的一个请求时,它会运行程序,根据环境变量里的请求变量以及标准的输入流(对于POST的数据)。对于响应,CGI会使用标准的输出流来输出,包括HTTP header和内容。

让我们首先做一个小程序以显示一则很短的信息。

创建一个简单的Request Handler
创建一个文件夹名字叫 helloworld.。所有的这个程序的文件都放在这个目录下面。

在helloworld 文件夹里,创建一个名字叫helloworld.py,的文件,然后在里面输入:

print 'Content-Type: text/plain'print ''print 'Hello, world!'这段Python脚本代码将会对每一个WEB请求响应一段HTTP header(用来描述内容),一个空行,以及一则信息Hello, world!。

创建配置文件

每个App Engine程序都有一个配置文件叫做app.yaml。这个文件用来告诉服务器哪一段URLs用哪一个handler代码来处理。

在helloworld 文件夹里,创建一个名叫app.yaml的文件,内容如下:

application: helloworld
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
script: helloworld.py
从上到下,这个配置文件讲了如下几个关于应用程序的内容:

这个应用程序的ID是helloworld。当你在最后一步中上传你的程序时,你得选择一个唯一的ID,然后代替掉这个helloworld。在调试开发阶段,这个ID可以是任何值。现在,我们把它设成helloworld。
这个程序代码的版本号是1,如果你上传了新的版本的程序,App Engine会保留以前的版本,通过管理控制台,你可以将你的App Engine程序恢复到以前的版本。
这段代码是在python 运行时环境下运行的,版本号是1.其他的runtime环境和语言可能会在将来得到支持。
每个符合正则表达式/.* (即所有URLs)都将用helloworld.py 这段代码进行处理。
The syntax of this file is YAML. For a complete list of configuration options, see the app.yaml reference.

这个文件的语法是 YAML.。关于完整的配置选项,参见 the app.yaml reference。

调试程序

有了处理脚本代码和用来映射URL的配置文件之后,这个程序就完整了。你现在可以使用App Engine SDK内置的服务器测试你的程序了。

用下面的命令来启动web服务器,将helloworld的文件夹地址添加到命令后面:

google_appengine/dev_appserver.py helloworld/
这个web服务器现在就开始运行了,监听端口为8080.使用下面的地址就可以在浏览器中调试你的程序了:

http://localhost:8080/

想要获取更多关于运行开发web服务器的信息,比如如何改变监听端口,参见the Dev Web Server reference,或者在命令后面添加--help。

继续开发

你可以在服务器运行的时候继续开发你的程序,web服务器会查看你的源文件的改变,并在需要的时候重新加载。

试试看:让web服务器保持运行,然后编辑helloworld.py 里的文件内容,将 Hello, world! 改成其他的内容,然后重新访问http://localhost:8080/ ,你会看到页面发生了改变~

想要关闭web服务器,只要在terminal窗口激活的情况下,按Control-C(或者对于你的控制台来说正确的打断命令)。

你可以在本使用指南的下面的部分中一直保持web服务器运行,如果你需要关闭它,下次你仍可以使用上面的代码来将web服务器重新开启。

0
相关文章