tornado是一个python web框架和异步网络库,最初在friendfeed开发。

tornado-bedframe的Python项目详细描述


Tornado是一个python web框架,并且 异步网络库,最初在FriendFeed开发。使用无阻塞网络I/O,Tornado 可以扩展到数万个开放连接,非常适合 long pollingWebSockets和其他 需要与每个用户建立长期连接的应用程序。

升级说明

从Tornado 3.2开始,backports.ssl_match_hostname包 必须在Python2上运行Tornado时安装。这将是 使用pipeasy_install时自动安装。

你好,世界

下面是一个简单的“Hello,World”Tornado Web应用程序示例:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

本例不使用Tornado的任何异步特性;对于 看到这个simple chat room

安装

自动安装

pip install tornado

龙卷风列在PyPI和 可以使用pipeasy_install安装。请注意 源代码分发包括不存在的演示应用程序 当Tornado以这种方式安装时,您可能希望下载 源tarball的副本。

手动安装:从PyPI下载最新的源代码。

tar xvzf tornado-$VERSION.tar.gz
cd tornado-$VERSION
python setup.py build
sudo python setup.py install

龙卷风的源代码是hosted on GitHub

先决条件:Tornado在Python2.6、2.7、3.2和3.3上运行。打开 python 2,backports.ssl_match_hostname包 必须安装(使用时将自动安装 pipeasy_install);在python 3上没有严格的 标准库之外的依赖项。一些龙卷风特征可能 需要下列可选库之一:

  • unittest2需要运行 Tornado在Python2.6上的测试套件(在最近的 python的版本)
  • concurrent.futures是 推荐用于Tornado的线程池,并允许使用 tornado.netutil.ThreadedResolver。它只在python 2上需要; python 3在标准库中包含了这个包。
  • pycurl被可选的 tornado.curl_httpclient。需要libcurl 7.18.2或更高版本; 建议使用7.21.1或更高版本。
  • Twisted可以与中的类一起使用 tornado.platform.twisted
  • pycares是另一种选择 当线程不在时可以使用的非阻塞DNS解析程序 适当的。
  • Monotime添加对 提高环境可靠性的单调时钟 时钟调整频繁的地方。在Python3.3中不再需要。

平台:tornado应该在任何类unix的平台上运行,尽管 为了获得最佳的性能和可伸缩性,只有linux(使用epoll) 和bsd(带kqueue)推荐用于生产部署 (即使mac os x是从bsd派生的,并且支持kqueue,它的 网络性能通常很差,因此建议仅用于 开发利用)。龙卷风也会在窗户上蔓延,尽管 配置不受官方支持,建议仅用于 开发利用。

讨论和支持

你可以在the Tornado developer mailing list上讨论龙卷风,并在 那是GitHub issue tracker。链接到其他 资源可以在Tornado wiki上找到。

龙卷风是Facebook’s open source technologies之一。它在 这是Apache License, Version 2.0

此网站和所有文档都是根据Creative Commons 3.0授权的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
添加到Linkedlist后int与Integer的java比较不起作用   服务器启动时来自tomcat的java通知回调   在java中如何将float转换为double?   使用Java数据Bean连接到Siebel时出错   我如何反对像Java这样的强类型语言中的Ducktyping呢?   运行vert的json。x与java安全管理器   java大O表示法解释嵌套while循环   配置My gradle java项目找不到log4j2。json   验证我需要编写一个包含特殊字符和0到9的数字的java字符串来验证密码   java Univocity解析器:从这里调用函数无效:parserSettings。选择字段(*some_function*);   java在MVC上应用TDD   运行时的java按钮开关   Java8:如何流式处理int数组、提取低位字节和创建字节数组   linux无法在从Java启动的子进程中为SIGQUIT设置信号处理程序   Gradle具有真正混合的java和scala源代码