首页 > 教程 > [跟康爷学GAE]GAE的Hello World程序(2)

[跟康爷学GAE]GAE的Hello World程序(2)

2009年2月22日 康爷 发表评论 阅读评论

跟康爷学GAE》是整个Google App Engine教程计划的一个总名称,如果你对这个系列的GAE教程感兴趣,可以订阅康爷的博客。整个教程的目录在:GAE教程计划的目录,教程会同步发送到gae.kangye.org上面。

在(1)里面,我们讲了如何配置一个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的好处就是不用编译,保存完文件就可以在浏览器中看到修改后的效果了

分类: 教程 标签: