tornado 入门篇
Posted quanquan616
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tornado 入门篇相关的知识,希望对你有一定的参考价值。
一、Tornado简介
Tornado是一个由Python开发的Web框架,它是单线程异步的非阻塞服务器,因此速度非常快。
相对一般情况下来说,如果同时连接数Django为8000个左右,那么Tornado为12000个。
二、路由
路由就是路径,一条路线。
通过IP找到服务器,通过端口找到服务。服务都会有一个路由对应一个Handler,在Handler中才执行具体业务逻辑。
比如你去一家会所,会所就是服务器。会所前台妹妹问你需要什么服务,你要打洞,妹妹会指引你去打洞的地方。如果你只是洗澡,妹妹会指引你去洗澡的地方。指引就是路由,一条路线。不同的服务,不同的端口。到了打洞的地方(Handler),洞要怎么打就随你定义了。
Handler:指定请求的资源,相当于Django的视图函数。
端口:如果所有服务都用同一个端口,就像所有的汽车在同一条路开,结果就是堵死,谁都别想好过!那么就用端口去区分具体是哪个服务,你占用了一个端口,那么其他服务就靠边站,去用其他端口。
web服务:正在运行的程序,可以跟别人交互。
Tornado服务:启动起来就是一个服务了。
三、最基本的tornado示例
import tornado.web import tornado.ioloop import tornado.options # 让模块有自定义选项 import tornado.httpserver # 启动一个单线程的http服务器 from tornado.options import define, options # 自定义端口 # help是给人看的帮助提示 define("port", default=8888, help="given your port", type=int) class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello World!") # 路由表 application = tornado.web.Application( # s不要漏下,不然找不到路由 handlers=[ (r"/", MainHandler), ] ) if __name__ == "__main__": tornado.options.parse_command_line() # 可以通过命令行交互 python xxx.py --port=8888 http_server = tornado.httpserver.HTTPServer(application) http_server.listen(options.port) # 调用自定义端口 tornado.ioloop.IOLoop.instance().start()
get_arguments() 和 get_argument()
首先看get_arguments()
# 只需改动上诉代码中的MainHandler class MainHandler(tornado.web.RequestHandler): def get(self): name = self.get_arguments("name") print(name)
在浏览器中输入URL http://47.98.139.237:8888/?name=zyb&name=budong
去后台可以看到打印结果 [‘zyb‘, ‘budong‘]
两个重名的name都得到了
以上是关于tornado 入门篇的主要内容,如果未能解决你的问题,请参考以下文章