网站首页学无止境PYTHON

python框架Tornado之一下载安装

发布时间:2014-07-25 15:17:14编辑:songlin阅读(105)

    Overview

    FriendFeed使用了一款使用 Python 编写的,相对简单的 非阻塞式 Web 服务器。其应用程序使用的 Web 框架看起来有些像 web.py 或者 Google 的 webapp, 不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具 和优化。

    Tornado 就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对 epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容 服务器,以处理数以千计的客户端的连接的问题,请参阅 The C10K problem )

    以下是经典的 “Hello, world” 示例
     

    1. import tornado.ioloop 
    2. import tornado.web 
    3.  
    4. class MainHandler(tornado.web.RequestHandler): 
    5.     def get(self): 
    6.         self.write("Hello, world"
    7.  
    8. application = tornado.web.Application([ 
    9.     (r"/", MainHandler), 
    10. ]) 
    11.  
    12. if __name__ == "__main__"
    13.     application.listen(8888
    14.     tornado.ioloop.IOLoop.instance().start() 

    查看下面的 Tornado 攻略以了解更多关于 tornado.web 包 的细节。

    我们清理了 Tornado 的基础代码,减少了各模块之间的相互依存关系,所以理论上讲, 你可以在自己的项目中独立地使用任何模块,而不需要使用整个包。

    下载和安装

    自动安装: Tornado 已经列入 PyPI ,因此可以通过 pip 或者 easy_install 来安装。如果你没有安装 libcurl 的话,你需要将其单独安装到系统中。请参见下面的安装依赖一节。注意一点,使用 pip 或 easy_install 安装的 Tornado 并没有包含源代码中的 demo 程序。

    手动安装: 下载 tornado-2.0.tar.gz

    1. tar xvzf tornado-2.0.tar.gz 
    2. cd tornado-2.0 
    3. python setup.py build 
    4. sudo python setup.py install 

    Tornado 的代码托管在 GitHub 上面。对于 Python 2.6 以上的版本,因为标准库中已经包括了对 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+)
    1. sudo easy_install setuptools pycurl 
    Ubuntu Linux (Python 2.6+)
    1. sudo apt-get install python-pycurl 
    Ubuntu Linux (Python 2.5)
    1. sudo apt-get install python-dev python-pycurl python-simplejson 

    模块索引

      最重要的一个模块是web, 它就是包含了 Tornado 的大部分主要功能的 Web 框架。其它的模块都是工具性质的, 以便让 web 模块更加有用 后面的 Tornado 攻略 详细讲解了 web 模块的使用方法。

    主要模块

    • web - FriendFeed 使用的基础 Web 框架,包含了 Tornado 的大多数重要的功能
    • escape - XHTML, JSON, URL 的编码/解码方法
    • database - 对 MySQLdb 的简单封装,使其更容易使用
    • template - 基于 Python 的 web 模板系统
    • httpclient - 非阻塞式 HTTP 客户端,它被设计用来和 web 及 httpserver 协同工作
    • auth - 第三方认证的实现(包括 Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth)
    • locale - 针对本地化和翻译的支持
    • options - 命令行和配置文件解析工具,针对服务器环境做了优化

    底层模块

    • httpserver - 服务于 web 模块的一个非常简单的 HTTP 服务器的实现
    • iostream - 对非阻塞式的 socket 的简单封装,以方便常用读写操作
    • ioloop - 核心的 I/O 循环

     


本文来源地址:http://sebug.net/paper/books/tornado/