Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接
Hello Tornado
tornado 是一个可以处理http请求的框架,你的工作是作为一个程序员,编写一个handlers来响应一个标准的http请求。,下面是这个例子的所有代码:
范例1:hello.py
- import tornado.httpserver
- import tornado.ioloop
- import tornado.options
- import tornado.web
- from tornado.options import define, options
- define(“port”, default=8000, help=”run on the given port”, type=int)
- class IndexHandler(tornado.web.RequestHandler):
- def get(self):
- greeting = self.get_argument(‘greeting’, ’Hello’)
- self.write(greeting + ’, friendly user!’)
- if __name__ == ”__main__“:
- tornado.options.parse_command_line()
- app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
- http_server = tornado.httpserver.HTTPServer(app)
- http_server.listen(options.port)
- tornado.ioloop.IOLoop.instance().start()
实际上我们大部分的工作是使用tornado的接口去定义一个类来扩展tornado 的RequestHandler类,在这个例子中,我们将会定义一个简单的应用来监听从端口获得的请求,并且返回一个响应值。
你可以通过命令行去试着运行和测试你自己的代码:
- $ python hello.py –port=8000
现在你可以通过浏览器访问http://localhost:8000/,或者在另外一个独立的命令行窗口使用curl命令测试这个应用:
- $ curl http://localhost:8000/
- Hello, friendly user!
- $ curl http://localhost:8000/?greeting=Salutations
- Salutations, friendly user!
参考:http://blog.xihuan.de/tech/web/tornado/tornado_simple_example.html(比较优秀)
http://my.oschina.net/1123581321/blog/214091