-------------------简介------------------- 
1、概念: 
    Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月以开源软件形式开放给大众。

2、特点: 
    1、作为Web框架,是一个轻量级的Web框架,类似于另一个Python web框架Web.py,其拥有异步非阻塞IO的处理方式。

2、作为Web服务器,Tornado有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。

3、性能: 
    1、Tornado有着优异的性能。它试图解决C10k问题,即处理大于或等于一万的并发

2、Tornado框架和服务器一起组成一个WSGI的全栈替代品。单独在WSGI容器中也可以使用

3、tornado网络框架或者tornaod http服务器,有一定的局限性,为了最大化的利用

-------------------Tornado与Django的区别------------------- 
1、Tornado 
    1、Tornado走的是少而精的方向,注重的是性能优越,它最出名的是异步非阻塞的设计方式。

2、特点: 
        1、HTTP服务器:Tornado框架和服务器一起组成一个WSGI的全栈替代品

2、异步编程

3、WebSockets

2、Django 
    1、Django是走大而全的方向,注重的是高效开发,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

2、Django提供的方便,也意味着Django内置的ORM跟框架内的其他模块耦合程度高,应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利。

3、特点: 
        1、session功能

2、后台管理

3、ORM

-------------------Tornado安装 
1、查看工作环境中是否安装 
    $ pip list

2、安装对应的tornado环境 
    1、自动安装 
        $ pip install tornado

2、手动安装 
        1、下载安装包tornado-4.3.tar.gz(https://pypi.python.org/packages ... /tornado-4.3.tar.gz)

2、$ tar xvzf tornado-4.3.tar.gz

3、$ cd tornado-4.3

4、$ python setup.py build

5、$ sudo python setup.py install

3、安装对应的数据库操作环境 
    $ pip install trondb

-------------------Tornado基本模块 
1、Tornado web 程序编写思路 
    1、创建web应用实例对象,第一个初始化参数为路由映射列表。

2、定义实现路由映射列表中的handler类。

3、创建服务器实例,绑定服务器端口。

4、启动当前线程的IOLoop。

2、tornado.web 
    1、RequestHandler: 
        封装了对应一个请求的所有信息和方法,write(响应信息)就是写响应信息的一个方法;对应每一种http请求方式(get、post等),把对应的处理逻辑写进同名的成员方法中(如对应get请求方式,就将对应的处理逻辑写在get()方法中),当没有对应请求方式的成员方法时,会返回“405: Method Not Allowed”错误。

2、Application: 
        Tornado Web框架的核心应用类,是与服务器对接的接口,里面保存了路由信息表,其初始化接收的第一个参数就是一个路由信息映射元组的列表;其listen(端口)方法用来创建一个http服务器实例,并绑定到给定端口(注意:此时服务器并未开启监听)。

3、tornado.ioloop 
    1、tornado的核心io循环模块,封装了Linux的epoll和BSD的kqueue,tornado高性能的基石

2、Linux的epoll原理图

3、IOLoop.current(): 
        返回当前线程的IOLoop实例。

4、IOLoop.start(): 
        启动IOLoop实例的I/O循环,同时服务器监听被打开。

4、tornado.httpserver 
    实例: 
        #coding:utf-8 
        #一个简单的Tornado web

#引用对应的Tornado包 
        from tornado.web import Application,RequestHandler 
        from tornado.ioloop import IOLoop 
        from tornado.httpserver import HTTPServer

class IndexHandler(RequestHandler):

def get(self):

self.write('hello word!')

if __name__ == '__main__': 
            #创建一个app应用 
            app = Application([('/',IndexHandler)])

#app.listen('8000') 
            #为应用创建一个http服务 
            http_server = HTTPServer(app)

#绑定对应的端口号 
            http_server.listen(8000)

#开启多个tornado进程 
            #http_server.bind(8000) 
            #http_server.start(4)

IOLoop.current().start()

5、tornado.options 
    1、tornado.options模块——全局参数定义、存储、转换。

2、tornado.options.define() 
        1、def define(name, default=None, type=None, help=None, metavar=None, 
           multiple=False, group=None, callback=None):

2、name 选项变量名,须保证全局唯一性,否则会报“Option 'xxx' already defined in ...”的错误;

3、default 选项变量的默认值,如不传默认为None;

4、type 选项变量的类型,从命令行或配置文件导入参数的时候tornado会根据这个类型转换输入的值,转换不成功时会报错,可以是str、float、int、datetime、timedelta中的某个,若未设置则根据default的值自动推断,若default也未设置,那么不再进行转换。可以通过利用设置type类型字段来过滤不正确的输入。

5、multiple 选项变量的值是否可以为多个,布尔类型,默认值为False,如果multiple为True,那么设置选项变量时值与值之间用英文逗号分隔,而选项变量则是一个list列表(若默认值和输入均未设置,则为空列表[])。

6、help 选项变量的帮助提示信息,在命令行启动tornado时,通过加入命令行参数 --help 可以查看所有选项变量的信息(注意,代码中需要加入tornado.options.parse_command_line())。

3、tornado.options.options 
        全局的options对象,所有定义的选项变量都会作为该对象的属性。

4、tornado.options.parse_command_line() 
        1、进行对应的初始化

5、tornado.options.parse_config_file(path)

6、实例 
      #coding:utf-8 
      #一个简单的Tornado web

#引用对应的Tornado包 
      from tornado.web import Application,RequestHandler 
      from tornado.ioloop import IOLoop 
      from tornado.httpserver import HTTPServer 
      import tornado.options

tornado.options.define("port",type=int,help="端口号")

class IndexHandler(RequestHandler):

def get(self):

self.write('hello word!')

if __name__ == '__main__': 
          tornado.options.parse_command_line()

#创建一个app应用 
          app = Application([('/',IndexHandler)])

#app.listen('8000') 
          #为应用创建一个http服务 
          http_server = HTTPServer(app)

#绑定对应的端口号 
          http_server.listen(tornado.options.options.port)

#开启多个tornado进程 
          #http_server.bind(8000) 
          #http_server.start(4)

IOLoop.current().start()

了解 Tornado 框架相关推荐

  1. tornado框架的get方法传递参数

    tornado框架的get方法传递参数,代码: # encoding: utf-8""" @version: ?? @author: andu99 @contact: a ...

  2. python tornado websocket_基于Python Tornado框架的websocket服务

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. Tornado中定义了tornado.websocket.WebSocketHandler来处理webs ...

  3. 第二百六十四节,Tornado框架-基于正则的动态路由映射分页数据获取计算

    Tornado框架-基于正则的动态路由映射分页数据获取计算 分页基本显示数据 第一步.设置正则路由映射配置,(r"/index/(?P<page>\d*)", inde ...

  4. 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言

    Tornado框架-逻辑处理get()方法和post()方法,初识模板语言 Tornado框架,逻辑处理里的get()方法,和post()方法 get()方法,处理get方式的请求 post()方法, ...

  5. tornado框架介绍

    Tornado是一个Python web框架和异步网络库,最初是在FriendFeed开发的.通过使用非阻塞网络I/O, Tornado可以扩展到数以万计的开放连接,非常适合长轮询.WebSocket ...

  6. 自学Python第二十六天- Tornado 框架

    自学Python第二十六天- Tornado 框架 安装及基础引用 创建.配置.初始化应用及简单运行服务 创建应用 对 app 进行设置 另一种设置方法 一些其他的配置 关于调试模式 设置路由处理器 ...

  7. python异步查询数据库_Python的Tornado框架实现异步非阻塞访问数据库的示例

    tornado即是一个http非阻塞服务器, 就要用起来, 我们将用到tornado框架 ,mongodb数据库 以及motor(mongodb的异步驱动).来简单实现tornado的非阻塞功能. 其 ...

  8. python修改图片大小为30kb_Python的Tornado框架实现图片上传及图片大小修改

    图片的上传 上传图片使用了表单提交, 下面是html部分, enctype="multipart/form-data"表示不对字节进行编码,上传文件类型时需指定. input标签的 ...

  9. Tornado框架简介

    -------------------简介------------------- 1.概念:     Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器 ...

最新文章

  1. 计算机及网络应用基础思维导图_思维导图在生物教学中的应用
  2. 「Swift」第三章String and Character
  3. 史上最牛空姐,从飞机上掉下愣是没摔死
  4. 2020牛客多校第1场I-1 or 2一般图最大匹配带花树
  5. 产品经理专业知识50篇(十二)-抖音训练营项目实战(知识付费MVP产品模型)
  6. mybatis plus 格式话_作为阿里的面试官,我有话想说
  7. mysql:Java通过驱动包(jar包)连接MySQL数据库---步骤总结及验证
  8. ubuntu linux 软件安装位置,ubuntu查看软件安装位置
  9. 技术架构图-软件研发流程
  10. sketch插件 android,用这个免费的Sketch插件,帮你完美还原安卓界面!
  11. 【高等数学】微积分----教你如何简单地推导求导公式(二)
  12. 去除图片上的文字出现马赛克?
  13. 树莓派做下载机+Web服务器(Aria2下载+yaaw做UI+nginx)
  14. 了解一下PMO项目管理岗
  15. SNARK Design
  16. 帆软finereport导出excel的数字过长变成科学计数法的解决方法
  17. Leetcode刷题——剑指offer_1
  18. 003.小插曲之变量和字符串
  19. Git安装与使用教程
  20. 第十四课 斗地主项目课④ 游戏场景的ui

热门文章

  1. 雷军为什么要挖常程?
  2. windows10/win8.1下AMD显卡驱动无法安装的解决方法
  3. 大数据框架hadoop之JobTracker主要功能分析
  4. HTML5--CSS3在线编辑工具 超酷!!!(24款非常实用的CSS3工具终极收藏)
  5. Graham算法构造凸包(python)
  6. 独立同分布的大样本OLS回归
  7. python的交互式是什么,python交互是什么
  8. 人和摩托最快达到目的地
  9. 《算法笔记》学习日记——5.2 最大公约数与最小公倍数5.3 分数的四则运算5.4 素数
  10. AR红包Android端实现原理