本指南将介绍如何开发以及展示一个简单的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: helloworldversion: 1runtime: pythonapi_version: 1handlers:- 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服务器重新开启。