初用 Google App Engine
在邮件列表中看到了这个东西,感觉满好玩的,是用python的,也满合胃口的,申请了一下,然后过了一会拿到的许可。有人说是在后台有一个sleep
3000,呵呵,不知道是真的假的。反正我是有了,用着玩玩吧。
下载了SDK,没细看里面的目录结构,只是知道里面有一个脚本可以当作开发时的服务器,还有一个脚本可以用以把文件上传。网站上有一个教程,老例子,上来先是一个he
lloworld。它的工程中需要有一个app.yaml用以标识工程的ID,刚写的那个yaml文件如下:
application: sonic
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: helloworld.py
version是工程的版本,runtime version和api_version这俩目前只有一种选择,不知道以后会不会更改。然后就是写主要的部分了,han dlers。首先是以减号开始,后跟url关键字,冒号后是正则的URL列表,下一行的script是标明处理这个URL的脚本,后面自己写的。如果在url字段中用 了正则表达式,则将请求传入脚本时会自动将匹配的字符串作为参数。后面的那些静态文件和登录啥的没细看,看到再写。
然后就是里面的helloworld.py文件了,最简单的就是三个print,当时看到我直接喷了,真的。 简单的不能再简单的代码了。
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
反正就是这么简单。然后运行它的那个简单的服务器,运行时需要指明工程的目录,即包含有app.yaml文件的目录。运行后就可以通过浏览访问8080端口来测试服务 了。还好第二个程序算是有点内容了,虽然也还是HelloWorld,但是它用了webapp的框架,代码量也有点多了。
import wsgiref.handlers
from google.appengine.ext import webapp
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
def main():
application = webapp.WSGIApplication([('/', MainPage)], debug=True)
wsgiref.handlers.CGIHandler().run(application)
if __name__ == "__main__":
main()
在main函数中,应该是通过WSGIApplication确定了对于某些特定的请求,使用哪个类来处理,get()方法用于响应HTTP GET的请求,其它的函数还没细看。返回结果和上一个差不多,嗯。
最后需要把程序部署到google的服务器上,使用它的appcfg.py上传,需要把app.yaml中的那个application改成申请下来的id,然后上传 ,输入邮箱,密码啥的。然后就可以通过 http://.appspot.com/ 访问了。满好玩的,继续折腾。