tornado基础配置
 
import tornado
.web
'''
tornado的基础web框架模块
'''
import  tornado
.ioloop
'''
tornado的核心IO循环模块,封装了linux和epoll和BSD的kqueue
是tornado高效的基础
'''
class indexhandler(tornado
.web
.RequestHandler
):
    
    def get(self
):
        
        
        self
.write
("hello,tornado")
if __name__
=="__main__":
    
    
    
    app
=tornado
.web
.Application
([
        (r
"/",indexhandler
)
    ])
    
    
    app
.listen
(8000)
    '''
    IOLoop.current():返回当前线程的IOLoop实例
    IOLoop.start():启动IOLoop实例的I/O循环,同时开始监听
    '''
    tornado
.ioloop
.IOLoop
.current
().start
()
 
使用http服务器对象
 
import tornado
.web
import  tornado
.ioloop
import  tornado
.httpserver
class indexhandler(tornado
.web
.RequestHandler
):
    
    def get(self
):
        self
.write
("hello,tornado")
if __name__
=="__main__":
    app
=tornado
.web
.Application
([
        (r
"/",indexhandler
)
    ])
    
    
    httpserver
=tornado
.httpserver
.HTTPServer
(app
)
    httpserver
.listen
(8000)
    tornado
.ioloop
.IOLoop
.current
().start
()
 
单进程与多进程
 
bind(port)
 
作用:将服务器绑定到指定的端口
 
start(num_process)
 
num_process:开启的进程数 默认开启一个进程 如果值为none或者小于等于0,开启对应硬件及其的cpu核心数子进程 例:
 
    
    
    httpserver
=tornado
.httpserver
.HTTPServer
(app
)
    httpserver
.bind
(8000)
    httpserver
.start
(5)
 
补充说明
 
app.listen()
 
只能在单进程模式中使用
 
多进程
 
虽然tornado提供了一次性启动多个进程的方式,但是不建议上述方式启动多进程。而是手动启动多进程,并且能绑定多个端口。 原因: 1:每个子进程都会从父进程中复制一份IOLoop的实例,如果在创建子进程前修改了IOLoop,会影响所有的子进程 2:所有的进程都是由一个命令启动的,无法做到在不停止服务的情况下修改代码 3:所用进程共享一个端口,想要分别监控很困难
 
options
 
tornado为我们提供了tornado.options模块 作用:全局参数的定义,存储,转换
 
基础方法与属性
 
tornado.options.define()
 
功能:
 
用来定义options选项变量的方法
 
参数:
 
name:选项变量名字,必须保证唯一性,否则报错 default:选项变量默认值,默认为none type:设置选项变量类型,从命令行或配置文件导入参数时tornado会根据类型转换输入的值,转换失败会报错,可以是str,float,datatime.如果没有设置type,会根据default进行转换。如果没有设置default,则不进行转换 multiple:设置选项变量是否可以为多个值,默认为false help:提示信息
 
实例:
 
tornado
.options
.define
("post",default
=8000,type=int)
tornado
.options
.define
("list",default
=[],type=str)
 
tornado.options.options
 
全局的options对象,所有定义的选项变量都会作为该对象的属性