在跟别人探讨关于现在流行使用的python web框架来说,目前多数人比较使用频次比较高的可能还是:
django ,flask,Tornabo,Falcon,bottle等
鉴于Tornabo有别于其他框架,有它特殊使用场景和应对场景,所以打算学习一下。
简介
不想介绍的太多,只需要知道它是一个强大的、可扩展的Web服务器兼Web应用框架即可!
特点

在windows上安装
步骤
1:下载tornado包
2:解压后的文件夹放到python所在的根目录下
3:将文档名字改变成“tornado”
4:打开CMD上,进入tornado目录,运行命令python setup.py install
5:python import tornado验证是否安装成功
入口类测试验证test.py:
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
greeting = self.get_argument('greeting', 'Hello')
self.write(greeting + ', friendly user!')
if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
然后直接的:python test.py
或 指定端口启动 :python test.py --port=8890
使用默认的8000端口启动:

入口类中一些介绍:
导入模块说明:
tornado.httpserver — 一个无阻塞HTTP服务器的实现
tornado.ioloop — 核心的I/O循环
tornado.options — 解析终端参数
tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类
options说明:
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
从命令行中读取配置参数信息:
如上它可以让我们特别指定HTTP服务端口port参数信息,如没有指定,其默认值为8000
关于help:
如果用户运行程序时使用--help选项,程序将打印出所有你定义的选项(‘port’)以及你在define函数的help参数中指定的文本
比如我还可以自定义其他的参数信息:
define("port", default=8000, help="程序运行的端口port为:", type=int)
define("xxxx", default='xiaozhong', help="自定义的参数信息为:", type=str)
使用:$ python test2.py --help 运行程序

关于IndexHandler:
我们的tornado的请求处理函数类,当处理一个请求时,会将这个类实例化,并调取与HTTP请求方式对应的方法,可以理解为是对应的路由:
如上例子是定义了get方法
httpserver说明:
然后创建了一个Tornado的Application类的实例,并且handlers定义了根路径的路由和处理函数之间的映
网友评论