tornado框架5分钟快速上手、tornado基础

Tornado基础Tornado概述Python常用后端框架:​ Flask: 轻量级,需要使用大量插件,自由灵活​ Django: 重量级,不需要太多插件,没那么灵活Tornado: 主要特点:①可以实现长连接Websocket, ②可以实现高并发Python的Web框架种类繁多(比Python语言的关键字还要多),但在众多优秀的Web框架中,Tornado框架最适合用来开发需要处理长连接和应对高并发的Web应用。Tornado框架在设计之初就考虑到性能问题,它可以处理大量的并发连接
摘要由CSDN通过智能技术生成

Tornado基础

Tornado概述

Python常用后端框架:​
Flask: 轻量级,需要使用大量插件,自由灵活
​ Django: 重量级,不需要太多插件,没那么灵活

Tornado: 主要特点:①可以实现长连接Websocket, ②可以实现高并发

Python的Web框架种类繁多(比Python语言的关键字还要多),但在众多优秀的Web框架中,Tornado框架最适合用来开发需要处理长连接和应对高并发的Web应用。Tornado框架在设计之初就考虑到性能问题,它可以处理大量的并发连接,更轻松的应对C10K(万级并发)问题,是非常理想的实时通信Web框架。

Tornado框架源于FriendFeed网站,在FriendFeed网站被Facebook收购之后得以开源,正式发布的日期是2009年9月10日。Tornado能让你能够快速开发高速的Web应用,如果你想编写一个可扩展的社交应用、实时分析引擎,或RESTful API,那么Tornado框架就是很好的选择。Tornado其实不仅仅是一个Web开发的框架,它还是一个高性能的事件驱动网络访问引擎,内置了高性能的HTTP服务器和客户端(支持同步和异步请求),同时还对WebSocket提供了完美的支持。

了解和学习Tornado最好的资料就是它的官方文档,在tornadoweb.org上面有很多不错的例子,你也可以在Github上找到Tornado的源代码和历史版本。

5分钟上手Tornado

  1. 安装Tornado。

    pip install tornado
    
  2. 编写Web应用: example01.py。

    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
       def get(self):
           self.write('<h1>Hello, world!</h1>')
            
    def main():
       app = tornado.web.Application(handlers=[(r'/', MainHandler), ])
       app.listen(8888)
       tornado.ioloop.IOLoop.current().start()
    
    if name == 'main':
        main()
    
  3. 运行并访问应用。

    python example01.py
    

使用命令行参数动态设置端口

import tornado.ioloop
import tornado.web
from tornado.options import define, options, parse_command_line

# 定义默认端口
define('port', default=8000, type=int)

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('<h1>Hello, world!</h1>')

def main():
    # python example01.py --port=8888
    parse_command_line()
    app = tornado.web.Application(handlers=[(r'/', MainHandler), ])
    app.listen(options.port)
    tornado.ioloop.IOLoop.current().start()

if __name__ == '__main__':
    main()

在启动Web应用时,如果没有指定端口,将使用define函数中设置的默认端口8000,如果要指定端口,可以使用下面的方式来启动Web应用。

python example01.py --port=8888

路由解析

上面我们曾经提到过创建Application实例时需要指定handlers参数,这个参数非常重要,它应该是一个元组的列表,元组中的第一个元素是正则表达式,它用于匹配用户请求的资源路径;第二个元素是RequestHandler的子类。在刚才的例子中,我们只在handlers列表中放置了一个元组,事实上我们可以放置多个元组来匹配不同的请求(资源路径),而且可以使用正则表达式的捕获组来获取匹配的内容并将其作为参数传入到getpost这些方法中。


                
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值