Python语言写成的Web服务器 Tornado 简介
2012-05-24 13:05
246 查看
Tornado 是
FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像
web.py 或者
Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具和优化。
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对
epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容服务器,以处理数以千计的客户端的连接的问题,请参阅
C10K problem。)
请参见 Tornado 文档 或
Tornado 原文文档(镜像)以详细了解该 Web 框架。
PyPI ,因此可以通过
手动安装: 下载
tornado-1.2.1.tar.gz
Tornado 的代码托管在 GitHub 上面。对于 Python 2.6 以上的版本,因为标准库中已经包括了对
PycURL (7.18.2 或更高版本) 以及 simplejson (仅适用于Python 2.5,2.6 以后的版本标准库当中已经包含了对 JSON 的支持)。为方便起见,下面将列出 Mac OS X 和 Ubuntu 中的完整安装方式:
Mac OS X 10.6 (Python 2.6+)
Ubuntu Linux (Python 2.6+)
Ubuntu Linux (Python 2.5)
请参见 Tornado 文档 以详细了解该 Web 框架。
Tornado wiki 里面找到更多的资源。
转自:http://www.tornadoweb.cn/
FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像
web.py 或者
Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具和优化。
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对
epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容服务器,以处理数以千计的客户端的连接的问题,请参阅
C10K problem。)
请参见 Tornado 文档 或
Tornado 原文文档(镜像)以详细了解该 Web 框架。
下载和安装
自动安装: Tornado 已经列入PyPI ,因此可以通过
pip或者
easy_install来安装。如果你没有安装 libcurl 的话,你需要将其单独安装到系统中。请参见下面的安装依赖一节。注意一点,使用
pip或
easy_install安装的 Tornado 并没有包含源代码中的 demo 程序。
手动安装: 下载
tornado-1.2.1.tar.gz
1 | tar xvzf tornado - 1.2 . 1.tar .gz |
2 | cd tornado - 1.2 . 1 |
3 | python setup.py build |
4 | sudo python setup.py install |
epoll的支持,所以你可以不用
setup.py编译安装,只要简单地将 tornado 的目录添加到
PYTHONPATH就可以使用了。
安装需求
Tornado 在 Python 2.5, 2.6, 2.7 中都经过了测试。要使用 Tornado 的所有功能,你需要安装PycURL (7.18.2 或更高版本) 以及 simplejson (仅适用于Python 2.5,2.6 以后的版本标准库当中已经包含了对 JSON 的支持)。为方便起见,下面将列出 Mac OS X 和 Ubuntu 中的完整安装方式:
Mac OS X 10.6 (Python 2.6+)
sudo easy_install setuptools pycurl
Ubuntu Linux (Python 2.6+)
sudo apt-get install python-pycurl
Ubuntu Linux (Python 2.5)
sudo apt-get install python-dev python-pycurl python-simplejson
Hello, world
以下是经典的 "Hello, world" 示例:01 | import tornado.ioloop |
02 | import tornado.web |
03 |
04 | class MainHandler(tornado.web.RequestHandler): |
05 | def get( self ): |
06 | self .write( "Hello, world" ) |
07 |
08 | application = tornado.web.Application([ |
09 | (r "/" , MainHandler), |
10 | ]) |
11 |
12 | if __name__ = = "__main__" : |
13 | application.listen( 8888 ) |
14 | tornado.ioloop.IOLoop.instance().start() |
讨论和支持
你可以在 Tornado 开发者邮件列表中讨论和提交 bug。你还可以可以在Tornado wiki 里面找到更多的资源。
转自:http://www.tornadoweb.cn/
相关文章推荐
- 【Python】Web服务器网关接口(WSGI)的简介及wsgiref模块
- Tornado Web Server框架编写简易Python服务器
- 【脚本语言系列】关于PythonWeb服务器Bottle,你需要知道的事
- 【脚本语言系列】关于PythonWeb服务器Flask,你需要知道的事
- 【脚本语言系列】关于PythonWeb服务器apache+mod_wsgi,你需要知道的事
- Tornado - 基于Python的Web服务器框架
- [计网] 用python语言开发一个简单的web服务器和客户端
- Web服务器框架 Tornado简介
- 【脚本语言系列】关于PythonWeb服务器Nginx+uWSGI,你需要知道的事
- Python Web服务器Tornado使用小结
- 【脚本语言系列】关于PythonWeb客户端-服务器模块http-urllib,你需要知道的事情
- Web服务器框架 Tornado简介
- Python Web服务器Tornado使用小结
- Python基于twisted实现简单的web服务器
- Python语言简介
- Web安全实践(7)web服务器简介及常用攻击软件
- python 建立简单的web服务器
- python语言简介
- Python实现简单的Web服务器
- 《Go语言入门》第一个Go语言Web程序——简单的Web服务器