Tornado 框架
简介
使用 Python 编写的网络框架和高性能的异步网络库
适用于大量连接, 长轮训, WebSocket 应用
优势
微框架
异步支持
缺点
轮子少, 不像 Django, Flask 等框架有大量插件支持
缺少实践, 使用公司不多, 学习资料少
使用场景
构建微服务
不适合复杂的 CMS ( 内容管理系统 ) 应用
适合构建网站或者 app 后端微服务
学习资料
官方 - http://www.tornadoweb.org/en/stable/
introduction to tornado (译本) - http://demo.pythoner.com/itt2zh/
Tornado 使用
安装
pip install tornado
简单实例
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()
访问 这里 - 127.0.0.1:8888
Tornado 主要模块
web 框架
▨ tornado.web.Application 和 RequestHandler
▨ tornado.template 模板渲染
▨ tornado.routing 处理路由
设置 模板文件夹
def make_app(): return tornado.web.Application([ (r"/", MainHandler), ], template_path=os.path.join( os.path.dirname(__file__), "templates" ), debug=True )
以及调用展示模板
class MainHandler(tornado.web.RequestHandler): def get(self): self.render("test.html")
前后端数据传递
示例
import tornado.ioloop import tornado.web import os class MainHandler(tornado.web.RequestHandler): def get(self): self.render("test.html") def make_app(): return tornado.web.Application([ (r"/", MainHandler), ], template_path=os.path.join( os.path.dirname(__file__), "templates" ), debug=True ) if __name__ == "__main__": app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start()