翻译:Tornado官方文档Navigation


Tornado是一个Python web框架,同时也是一个异步网络库,最初开发于FriendFeed。通过非阻塞网络I/O,Tornado的规模可以达到万级开发式连接,使其成为那些要求与用户建立长期连接的长轮询,WebSockets,和其他应用程序的理想web框架。


Quick links


Hello,world

这是使用Tornado实现的一个‘Hello,world’简单web app代码示例:

import tornado.ioloop
import tornado.web

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

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

这个示例没有表现出Tornado任何的异步特性,关于这一点,先了解更多,可以点击查看这个demo: 简单聊天室


线程和WSGI

与大多数的Python web框架不同,Tornado不是基于WSGI,通常每个进程只跑一个线程。有关Tornado异步编程方法的更多信息,请点击【用户指南】了解更多信息。

虽然在tornado.wsgi模块中提供了对wsgi的一些支持,但它不是开发的重点,大多数应用程序应该直接使用tornado自己的接口(如tornado.web)而不是使用WSGI。

总的来说,Tornado的代码是非线程安全的。唯一可以安全的从其他线程调用的方法是IOLoop.add_callback,你也可以在执行器中使用IOLoop.run_in_executor从另一个线程上异步运行阻塞函数,但需要注意的是传递给 run_in_executor的函数应当避免引用任何Tornado对象。 run_in_executor方法被推荐用来与阻塞代码交互


异步集成

Tornado是与标准库asyncio模块集成,并共享相同的事件循环(自Tornado 5.0开始就作为默认特性)。总的来说,那些设计出来和asyncio一起使用的库可以与Tornado自由组合。


安装

pip install tornado

Tornado在PyPI中列出,可以使用pip进行安装。注意:使用pip安装的Tornado将不包括源发行版以及demo应用,所以你可以下载源副本,也可以克隆git仓库

前提: Tornado 6.0要求Python 3.5.2及以上版本(如果需要和python2.7兼容,请查看Tornado 5.1)下面的一些配件包也许可以帮到你:

平台: Tornado应该在Unix类平台上运行,尽管为了获得最佳性能和可拓展性只有Linux(带epoll)和BSD(带kqueue)被建议用来生产部署(虽然Mac OS X派生于BSD并支撑kqueue,但其网络性能通常较差,所以Mac只建议用来开发使用)。Tornado也可以跑在windows上,虽然该配置不是官方支持,但也可以用来开发使用。如果不修改Tornado IOLoop接口,就不可能添加本地Tornado Windows IOLoop实现,以及Twisted和Asyncio等框架提供的Windows IOCP支持。


文档

该文档也支持PDF和Epub格式,点击跳转下载页面


用户指南


Web 框架


HTTP服务端和客户端


异步网络


协程与并发


与其他服务集成


公共事务

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值