RSS

Google App Engine 动手玩

0 Comments | This entry was posted on Oct 18 2009

appengine     好吧,我承认我刚刚看过瘾科技的订阅,所以才起了一个这样的标题。

     以前只是用过由Google App Engine搭建的服务,像一些代理之类的。但直到前几天才正式接触了下Google App Engine。这里就简单介绍一下。

Google App Engine是一个开发、托管网络应用程序的平台,使用Google管理的数据中心。它在2008年4月发布了第一个beta版本。它虽然对免费用户做出了一些限制,但用来满足我们的基本需求还是足够了(Via 维基百科)。

首先,我们要用自己的Google帐号登录https://appengine.google.com/ 。然后选择 Creat an Application(创建一个应用),首次登陆会被要求验证。要选择国家并输入电话号码,我们选择Other(Not Listed)就可以,输入手机号码时,别忘了在前面加上+86(eg.+8613800138000)。很快你就会收到验证码了。到时回来确认一下。输入自己应用的网址(***.appspot.com)和名称就可以创建你的应用了。

这样,网络部分的准备工作就做完了。然后动手做本地部分的工作。

首先,下载并安装 Python 2.5.4

其次,下载并安装 Google App Engine SDK

安装过程没什么好说的。如果你想检测安装成功与否,可以进入命令行下运行一下 dev_appserver.py 指令(快捷键Win + R)。

在你成功的安装了Google App Engine所用开发环境之后,那我们开始创建一个小应用吧。和很多语言一样,第一个应用一定是“Hello Something”,我们要做的也是显示“hello the Google App Engine~” 的应用。

新建一个目录,将其命名为hello;

然后在hello目录下,新建一个文本文档,输入以下内容,然后将其重命名为 app.yaml

application: hello
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: hello.py

 

然后在hello目录下,用同样的方法再建立一个名为 hello.py 的文件,输入以下内容。

print ‘Content-Type: text/plain’
print ”
print ‘hello the Google App Engine~’

 

完成以上两个步骤,我们可以测试一下这个应用有没有成功:在命令行输入类似 dev_appserver.py d:/app-demo/hello ,将d:/app-demo/hello 换成自己hello目录所在的路径。

如果成功了,会有一个到 http://localhost:8080 进行本地预览的提示。

之后就是上传到google服务器上了。依旧用命令行来执行,路径记得自己换下:

appcfg.py update d:/app-demo/hello

 

上传完成之后,你赶紧打开你的Google App Engine(***.appspot.com)地址看下,是不是显示了“hello the Google App Engine~ ”的字样(eg.http://leqcany.appspot.com/)。

好啦,这样一个简单的Google App Engine应用就完成啦。你可以向更深一层进阶啦。

  比较有用的第三方应用有:

  GAppProxy http://code.google.com/p/gappproxy/

  birdnest  http://code.google.com/p/birdnest/ 

 

PS1: 文中示例参考:http://blog.csdn.net/nieyong/archive/2008/04/11/2282903.aspx

PS2: Google App Engine 官方教程:http://code.google.com/appengine/docs/python/gettingstarted/  

 

————————————————

 

下面附赠一个Google App Engine错误及解决办法:

Error 409: — begin server output —
Another transaction by user coolchyni is already in progress for this app and ma
jor version. That user can undo the transaction with appcfg.py’s "rollback" comm
and.
— end server output —

解决办法:

命令行输入: appcfg.py rollback 你的目录