Tornado 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Tornado 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 Apache
开发语言 Python 查看源码 »
操作系统 Windows
软件类型 开源软件
所属分类 服务器软件HTTP服务器
开发厂商
地区 不详
提 交 者 不详
适用人群 未知
收录时间 2008-09-10

软件简介

Tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,最早由Friendfeed开发。通过使用非阻塞IO,Tornado可以处理数以万计的开放连接,是long polling、WebSockets和其他需要为用户维护长连接应用的理想选择。

Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。

Tornado 主要分成四个部分:

  • Web 框架(包括 RequestHandler,用于创建Web程序的基类,以及各种支持类)

  • 实现 HTTP 的客户端和服务器端 (HTTPServerAsyncHTTPClient).

  • 一个异步网络库 (IOLoopIOStream)

  • 一个协程库(tornado.gen) ,使得异步调用代码能够以更直接的方式书写,取代回调链接

一个最简单的服务:

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()
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (10)

加载中
可能是数据库没有异步
2018/08/24 10:05
回复
举报
哪天试试
2018/07/31 22:50
回复
举报
#Tornado# 用tornado写的大佬们都是用什么实现数据库异步的
2018/07/31 22:03
回复
举报
用了一天一夜的时间,把tornado文档看了一遍 #Tornado#
2018/02/10 20:49
回复
举报
是忙
2017/06/10 20:01
回复
举报
我正在用tornado,并发能力特别差, 加了线程池也是并发能力弱,不知道为什么?求大神,求解?
2017/05/16 10:49
回复
举报
Tornado 这是个好东西呀。
2012/07/18 15:30
回复
举报
Hi~ Tornado
2012/07/18 15:33
回复
举报
好东西 Tornado
2013/09/04 16:21
回复
举报
好使么? Tornado
2014/04/25 14:34
回复
举报
更多评论
发表于服务端专区
2018/01/07 07:46

Tornado 4.5.3 发布,Python Web 框架和异步网络库

Tornado 是使用 Python 开发的全栈式(full-stack)Web 框架和异步网络库,最早由 Friendfeed 开发。通过使用非阻塞 IO,Tornado 可以处理数以万计的开放连接,是 long polling、WebSockets 和其他需要为用户维护长连接应用的理想选择。 Tornado 4.5.3 已发布,更新如下: tornado.curl_httpclient Improved debug loggi...

4
16
发表了资讯
2015/11/07 00:00

Tornado 4.3 正式版发布

Tornado 4.3 正式版发布了,该版本亮点: 1.正式支持Python3.5的async/await关键字,并且用老的Cython版本编译安装Tornado的时候也可以使用这两个关键字. 2.这将是最后一个支持Python2.6和Python3.2的版本,但是依旧PyPy3,哪怕PyPy3同时实现了Python3.2和Python3.3的功能....

4
11
发表了资讯
2015/05/28 00:00

Tornado 4.2 发布,Python Web 服务器

Tornado 4.2 发布, 更新内容如下: 向后兼容改进: SSLIOStream.connectand IOStream.start_tls now validate certificates by default. Certificate validation will now use the system CA root certificates instead ofcertifiwhen possible (i.e. Python 2.7.9+ or 3.4+) The default SSL configuration has become...

5
33
发表了资讯
2014/07/16 00:00

Tornado 4.0 发布,Web 服务器

Tornado 4.0 发布,此版本值得关注的特性如下: The tornado.web.stream_request_body decorator allows large files to be uploaded with limited memory usage. Coroutines are now faster and are used extensively throughout Tornado itself. More methods now return Futures, including most IOStreammethods and...

18
23
发表了资讯
2013/03/30 00:00

Tornado 3.0 版本发布

Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。 Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。 Tornado 3.0 版本发布,值得关...

11
23
发表了资讯
2011/06/23 00:00

Tornado 2.0 发布,Python编写的Web服务器

Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。 Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。 Tornado 2.0 最大的改变: 1....

7
17
发表了资讯
2011/03/27 00:00

Tornado Web Server 1.2.1 发布

Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。 要使用它,必须按照以下套件: 1)Python(建议使用Python 2.5 / Python 2.6) 2)Simplejson(建议使用simplejson 2.0.9) 3)cURL(建议使用curl 7.19.7或以上版本) 4)Pyc...

0
2
发表了资讯
2010/07/24 00:00

Tornado 1.0 发布,Facebook实时网络框架

据国外媒体报道,Facebook于去年宣布开源的实时网络框架Tornado(tornadoweb.org)日前正式推出其1.0版本。 Tornado是用Pyhton语言开发的实时网络服务器,它支持上万的不间断连接,因此也支持以长轮询(long-polling)方式发布实时数据。这正是FriendFeed的核心所在。 在 技术上有所创新的FriendFeed由谷歌前雇员和实时网...

6
7
发表了资讯
2009/09/13 00:00

Facebook宣布开源 Friendfeed实时技术

北京时间9月11日消息,据国外媒体报道,Facebook周四宣布,该公司已经将最近收购的社交媒体聚合网站Friendfeed的实时技术——Tornado开放源代码化。 Facebook高管大卫·瑞科多(David Recordon)发表博客文章称,Tornado能够同时处理数千个连接,非常适合用来开发实时Web服务,其优势在于速度和处理大量并发流量。 Facebo...

4
2
发表了资讯
2009/09/11 00:00

Facebook发布开源Web Server 

Facebook发布了一个开源实时Web server。 被称为Tornado的 开源Web server用Python语言编写,设计能处理数千条同时发生的请求。Tornado与现有的用Python语言编写的Web框架类似,突出的是速度和 处理海量的同时发生的连接请求的能力。Facebook的开放程序主管David Recordon认为,开放Tornado的源代码,可以促进整个互联网...

1
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/09/04 11:24

tornado

引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有一个对应的线程来用web应用...

0
0
发表于开发技能专区
2015/11/04 10:54

Tornado

Tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,最早由Friendfeed开发。通过使用非阻塞 IO,Tornado可以处理数以万计的开放连接,是long polling、WebSockets和其他需要为用户维护长连接应用的理想选择。 Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速...

0
1
发表了博客
2016/02/24 09:26

tornado

Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像 web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具 和优化。

0
1
发表了博客
2013/02/04 08:31

tornado

http://www.tornadoweb.cn/documentation https://github.com/facebook/tornado/tree/master/demos How I develop a tornado project http://lepture.com/work/tornado-project WTForms http://wtforms.simplecodes.com/docs/1.0.3/ Integrating SqlAlchemy with Tornado http://yashh.com/posts/2010/integrating-sqlal...

0
0
发表了博客
2019/08/01 10:35

Tornado

简介 Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月以开源软件形式开放给大众。 Tornado与其他Web框架的区别 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而...

0
0
发表了博客
2013/12/07 12:58

tornado

一. Tornado是什么? Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购的社交聚合网站FriendFeed的实时信息服务开发而来.Tornado由Python编写,是一款轻量级的Web服务器,同时又是一个开发框架。采用非阻塞I/O模型(epoll),主要是为了应对高并发 访问量而被开发出来,尤其适用于comet应用。 二. 为什...

0
2
发表了博客
2018/07/23 14:55

tornado

引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有一个对应的线程来用web应用(如Django)进行处理。 考虑两类应用场景 用户量大,高并发 如秒杀抢购、双十一某宝购物、春节抢火车票 大...

0
0
发表了博客
03/25 09:51

tornado

1.说明(异步非阻塞框架)   特点:自带socket,可以不用wsgi      原生支持websocket协议      组件支持少,不提供session,orm,form,admin,只提供路由系统,视图函数,模板渲染,加密cookie   使用特性:生成器,装饰器,future对象   适用场景:     -服务端做的计算操作耗时导致并发能力低(CP...

0
0
发表于大前端专区
2019/03/27 14:50

tornado

路由 测试tornado import tornado.ioloop#监听循环 import tornado.web#主要的包(核心模块) application =tornado.web.Application()#实例化参数 if __name__ =='__main__': application.listen(8000)#监听......

0
0
发表于服务端专区
03/29 20:35

03 | Tornado源码分析:Hello Tornado

点击“python编程军火库”,“置顶”公众号重磅干货,第一时间送达 正文共:800 字 3 图 预计阅读时间:2 分钟 曾几何时,我们学习一门新语言的时候都是从编辑输出“hello,word”开始的,今天我们就使用Tornado来...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2014/07/02 09:56

Python Tornado 如何清除浏览器缓存

请教一下各位Python的朋友,如何清浏览器缓存的问题,请指教,谢谢!

3
0
2018/09/28 08:52

python2.7 下 的pyhook不间断卡住问题

直接上代码: 环境:windowXP、7、10 问题现象:Pyhook启动后,如果静置一段时间后,大约5分钟以上,Hook出现卡住现象,过好一会才有反应,如果不间断有按键输入的话,出现卡住的概率就很低。 详情: tornado、python2.7 pyhook、 做了一个本地Python版的收银系统,利用 concurrent.futures.ProcessPoolExecutor 启动了若...

2
0
发表了问答
2017/03/17 09:57

Tornado 和 Gunicorn 有什么区别和联系吗?

我看 Gunicorn 是可以提供类型位 tornado 的 worker_class 的。 但二者到底是有什么区别和联系吗? 不都是用来跑 Python 的服务器吗?

2
0
发表了问答
2017/02/20 14:15

tornado官网说是非阻塞的,如何用tornado来拉起flask应用,使flask支持多线程?

直接上示例: flask应用代码如下:flask_app.py from flask import Flask import time app = Flask(__name__) @app.route('/') def hello_world(): result = bingloop(10000000) return result @app.route('/a') def hi_world(): return "hi,world" def bigloop(number): for i in range(0,number): print i return "don...

3
0
发表了问答
2016/10/24 13:09

Tornado中在线调试工程无法设置断点,如何解决?

使用Tornado工具在线调试工程,无法设置断点,设置断点时,弹出对话框如下所示 确定后,弹出下面的对话框

1
0
发表了问答
2015/09/09 10:28

如何在Mopaas上,创建部署WSGI类型的(Django, Tornado, Flask)Python应用 ?

第一部分:安装必要工具。 1.因为这是部署Python开发环境,所以安装pip可以简化一些软件的安装过程。(PIP对应Lua的luarocks) sudo apt-get install python-pip 安装三个Python框架 sudo pip install flask sudo pip install django==1.5.1 sudo pip install tornado==3.1.1 2.安装Gunicorn,这是运行Python的WSGI HT...

2
0
发表了问答
2016/05/11 21:44

tornado的static_url函数失效如何排查原因?

tornado的static_url函数说明如下: static_url函数创建了一个基于文件内容的hash值,并将其添加到URL末尾(查询字符串的参数v) 在模块文件中设置:{{ static_url("img/captcha.png") }} 可以在浏览页面查看源码时看到类似:/static/img/captcha.png?v=fab8d818a22a90d8ff6136a9dc60ba17这样的结果 开发环境是Ubuntu,已...

1
0
发表了问答
2014/05/09 14:00

400行python教你写个高性能http服务器+web框架,性能秒胜tornado uwsgi webpy django

echo hello 性能压测abtest tornado 4kqps nginx+tornado 9kqps nginx+uwsgi 8kqps (注意:没说比nginx快,只是这几个web框架不行) 本server 3.2w qps 没用任何python加速 不相信的可以自己压测下哦 什么都不说400行代码加使用例子,欢迎吐槽,欢迎加好友一起进步 server.py #!/usr/bin/python #-*- coding:utf-8 -*- ...

15
39
发表了问答
2016/03/02 10:58

自己动手写web服务器

项目主要实现一个脚本启动即可当web服务器使用,目前封装web服务器常用功能。 欢迎加群一起学习进步: 339711102 (it民工群) 项目代码 https://git.oschina.net/feimat/fastpy 本项目尽量少使用语言原生库,期望网友一起开发不同语言版本 第一步: 首先要有个处理网络异步io的模块 这一步相信大部分做后台开发的程序员都...

1
13
发表了问答
2015/09/14 19:59

使用tornado 做一个 webssh

因为云计算业务需求,需要搞一个浏览器上使用linux 终端的需求,于是花一天时间写了一个雏形,由于不善于写前段加最近比较忙,前段下周末再美化,欢迎大家拍砖 地址:https://github.com/xsank/webssh 原理: 由于模拟终端,所以对于类似top的命令会有服务器主动推送的情况,这里使用了tornado的websocket功能 而由于ssh...

7
2
发表了问答
2016/03/07 10:33

django程序同步锁问题

我的程序是个自动化程序,会在运行过程当中检查用户是不是进行了某个配置操作,如果没有则后台程序自动去修改xml配置文件完成自动配置。 因为平台是多用户操作,所以我必须保证如果有多个用户都修改这个配置文件时,只能有一个用户操作,其他用户等待。 请问,这个同步锁该怎么加,我想加在修改配置文件的方法上,我用的...

1
2
发表了问答
2015/12/15 09:57

如何修改tornado.web.RequestHandler的日志格式?

我查阅了 官方文档 ,默认格式是 %(color)s[%(levelname)1.1s %(asctime)s %(module)s:%(lineno)d]%(end_color)s %(message)s', datefmt='%y%m%d %H:%M:%S 如果我想修改这个格式(比如修改时间显示,增加其他的信息),应该怎么做呢?...

1
0
发表了问答
2015/08/28 14:34

请教 peewee 与 异步mysql库 tornado_mysql的整合问题

想要在tornado项目中实现mysql 异步,找了几个mysql异步的库,本来使用ORM peewee 和pymyql 实现mysq操作,但是是同步的,现在想要使用异步的mysql库(tornado_mysql) 不知道有没有高人用过?请教一下该如何实现? 想要保留peewee,想实现peewee与tornado_mysql(异步mysql 库) 整合。 如果不用peewee 项目很多部分就要重...

2
0
发表了问答
2015/10/25 16:51

使用tornado制作的web版留言板

留言板 Python Web框架Tornado入门练习小项目:留言板 项目地址:https://github.com/su-kaiyao/mes-board 望支持,给我的Github项目一个star 已经实现的功能: 用户的注册与登录,包括昵称,密码等合法性要求的检查 主要功能:用户登录后,进行留言 用户留言信息的显示:用户名,客户端ip,留言内容,留言时间 回复功能...

1
2
发表了问答
2015/10/11 19:26

tornado 模板中如何使用datetime.datime.strptime函数

大家好,今天遇到一个问题! 就是在tornado模板中需要转换日期字符串的格式! 例如,收到的字符串是'2015-10-11',我需要转换成'Oct 11, 2015' 我用的是strptime和strftime两个函数! 具体如下: datetime.datetime.strptime('2015-10-11', "%Y-%m-%d").strftime("%b %d, %Y") 在tornado模板我看到datetime关键字是指的是...

3
0
发表了问答
2015/09/30 08:37

Tornado路由规则疑问

用Tornado搭建基于Python的web应用时,遇到这样一个问题: 比如,我的路由里面有如下的规则: r"/test/M([0-9]+)",TestHandler 所以我在访问如http://xxx.xx.xx.xx/test/M1234这样的页面时,Tornado或让TestHandler去处理这个请求 在TestHandler里面的get方法render一个html文件test.html test.html有一些引入css和js的代...

3
0
发表了问答
2015/09/14 17:25

如何在MoPaaS创建部署WSGI类型的Python应用?

6
0
发表了问答
2015/05/03 11:31

python/tornado一般如何控制流程?

主要是靠raise Error来控制还是返回值的方式?生产环境下一般使用自定义的Error吗

1
0
发表了问答
2015/05/08 17:25

tornado的每次访问handler都会实例化一个RequestHandler吗?

我有一个BaseHandler继承了RequestHandler,然后具体handler继承Base,然后发现Base的__init__在每次访问时都会被调用,是不是就意味着每次都会实例化一个,而不是像java的servlet那样? 再有就是我将业务方面的操作提取到了service类里,当handler需要调用的时候都必须new一个实例,有没办法可以使得在base里new好后可以被继承...

1
0
发表了问答
2015/08/12 14:42

Tornado web实时聊天室

Chat Room web 实时聊天室 基于tornado服务器,Redis内存数据库,SQlite 源码:https://github.com/suliangxd/ChatRoom 思路: 当用户进入某个聊天室,即相当于订阅了此聊天室对应在redis里的一个channel 这里给出的架构图是指用户进入聊天室之后的实时聊天架构 思路说明:前端基于ajax的longpolling,后端采用redis的s...

1
8
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
10 评论
432 收藏
分享
返回顶部
顶部