tornado基础

轻量级框架

安装

pip install tornado==4.5.0(版本号)

应用

# 直接创建Application对象
# hangdlers中匹配路由地址和处理类
app = tornado.web.Application(
    handlers=[
        ('/xxx/', Xxx)
    ],
# 调试模式,windows中程序自动重启有问题。
    debug=True
)
# 或者封装成方法
def make_app():
    return tornado.web.Application(handlers=[
        ('/xxx/', Xxx)
    ])
app = make_app()
# 或者继承Application,创建子类对象
class Make_app(tornado.web.Application):
    def __init__(self):
        handlers = []
# 相对地址
        static_path = 'static'
        template_path = 'templates'
# 绝对地址
        BASE_DIR = os.path.dirname(__file__)
        static_path = os.path.join(BASE_DIR, 'static')
        template_path = os.path.join(BASE_DIR, 'templates'
        return supe().__init__(handlers=handlers,
                               static_path=static_path,
                               template_path=template_path,
                               cookie_secret)
app = Make_app()
  • 处理类
class Xxx(tornado.web.RequestHandler):
# 重写请求对应的方法
    def get(self):
        self.write('hello')
  • 单进程启动
# 端口监听
app.listen(port, address)
# 也可以用server对象监听端口
server = tornado.httpserver.HTTPServer(app)
server.listen(port, address)
#启动应用,主事件循环
tornado.ioloop.IOLoop.current().start()
  • 多进程启动
    因windows操作系统缺少fork无法启动多进程。
server = tornado.httpserver.HTTPServer(app)
# 监听8000端口,但分发给其它进程处理任务。
server.bind(8000)
# 启动进程,进程数默认为1,若num_processes为None或<=0,进程数为电脑核数。
server.start(num_processes=1)
#启动应用,主事件循环。
tornado.ioloop.IOLoop.current().start()

命令行参数设置端口

define('port', default=80, type=int)
parse_command_line()
app.listen(options.port)
  • 启动命令
python manage.py --port=8080

你可能感兴趣的:(tornado基础)