云计算 频道

Google App Engine的Hello World程序

  【IT168 资讯】注册完Google App Engine,为GAE做了一些准备工作(SDK,编译环境)之后,我们开始创建第一个GAE程序,当然从Hello World开始。

  首先创建一个Hello目录,然后在Hello目录下创建以下几个文件,app.yaml,hello.py。

  在Ulipad中打开app.yaml,将它的内容改为:

view sourceprint?1.application: hello
2.version: 1
3.runtime: python
4.api_version: 1<BR>
5.handlers:
6.- url: .*
7.
script: hello.py

  在Ulipad中打开hello.py,将它的内容改为:

view sourceprint?1.print 'Hello, world!'
保持文件,然后打开命令行,输入dev_appserver.py --p=9000 e:\gae\Hello,然后在浏览器中输入localhost:9000/,就可以看到Hello World!了。恭喜!

  下面我们来分析下上面两个文件的代码。

app.yaml是很重要的文件,它告诉App Engine一些关于你的应用的最基本的信息和编译环境:

application: hello 表示你的应用的app-id是hello,这个在上传的时候应该改为你注册的应用的id。

version: 1 表示你开发的应用现在是第一版,GAE可在各版本中切换(当然同一版本的开发将只记录最近的两次,一次是最新的,一次是rollback回去的)

handlers是很重要的配置信息,它告诉GAE访问路径的处理规则。这里url: .* 表示所有的路径,script: hello.py表示所有路径都是由hello.py来处理。

hello.py的内容很简单,就是输出Hello World!

dev_appserver.py --p=9000 e:\gae\Hello这行命令意思是打开web server,并将端口设成9000,同时,app的配置信息在e:\gae\hello下(这个路径应该是你自己存的路径)。

  在上面,我们讲了如何配置一个appengine应用,并在主页上输出Hello World!,这次,我们要使用webapp Framework来实现这个输出,虽然有点大材小用,但是简单的东西比较能让大家自己的实验有余地。

将hello.py的改为下面的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')

application = webapp.WSGIApplication(
[('/', MainPage)],
debug=True)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()

  然后在命令行中输入dev_appserver --p=9000 e:\gae\hello,查看localhost:9000/,就可以看到Hello, webapp World!了。

  下面来解释下这个新的hello.py里的代码:

  下面两行定义了程序的入口,就是执行application这个网络应用。那么application的具体内容呢,就是

webapp.WSGIApplication( [('/', MainPage)], debug=True)

  这句代码里面,[('/', MainPage)]表示'/'这个路径由MainPage这个类来处理,debug=True表示启动调试。

  下面再来看看MainPage这个类,它继承于webapp.RequestHandler,然后定义了一个get函数,这个函数用来处理对于'/'路径的GET方法的request。get函数里的两行,第一行表示输出的'Content-Type'是'text/plain',当然也可以改成'text/xml'或者其他的Content-Type。第二行表示输出的内容是Hello, webapp World!,可以换成其他的输出,这个你可以自己去玩玩。

  最上方是import,如果你以后要使用webapp的话,这两个是必须要引入的。

  当然,由于路径以后会有很多,我比较支持将它提取出来:

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
ROUTE = [('/', MainPage),
('/hello', MainPage)]
application = webapp.WSGIApplication(ROUTE,debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
  这段代码保存后,通过localhost:9000/hello,也可以看到Hello, webapp World!这句话了,你可以自己调试调试,Python的好处就是不用编译,保存完文件就可以在浏览器中看到修改后的效果了。

  下面准备出一道问题,供大家练习(前提是你会一些Python并且看了上面两部分)

  创建一个app engine本地应用,使得

  当你访问localhost:9000/时,出现两个链接,一个是localhost:9000/fibonacci以及localhost:9000/souce。

  localhost:9000/fibonacci的内容是展示最近100个Fibonacci数

  localhost:9000/souce的内容是展示你的源代码

0
相关文章