Tornado基础学习篇<一>

 

1.1 Tornado是什么?

import tornado from tornado import ioloop,httpserver from tornado.web import RequestHandler,url from tornado.options import define,options   tornado.options.define("port",type=int,default=8002,help="服务器客户端")   #默认配置 class IndexHandler(RequestHandler):     def get(self):#get请求         self.write("hello Tornado")  #发送hello Tornado到缓冲区,可以发送多个,这里到最后会默认执行self.finish(),将所有缓冲区信息发送给报文 #入口文件if __name__ == '__main__':     tornado.options.parse_command_line()     app = tornado.web.Application([(r"/",IndexHandler),],                                   debug=True)   #路由映射     http_server  = tornado.httpserver.HTTPServer(app)     http_server.listen(options.port)      #监听8002端口     tornado.ioloop.IOLoop.current().start()  #开始循环监听
复制代码

通过上面代码我们了解了tornado运行过程

tornado的基础web框架模块

RequestHandler 
封装了对应一个请求的所有信息和方法,write(响应信息)就是写响应信息的一个方法;对应每一种http请求方式(get、post等),把对应的处理逻辑写进同名的成员方法中(如对应get请求方式,就将对应的处理逻辑写在get()方法中),当没有对应请求方式的成员方法时,会返回“405: Method Not Allowed”错误。

Application 
Tornado Web框架的核心应用类,是与服务器对接的接口,里面保存了路由信息表,其初始化接收的第一个参数就是一个路由信息映射元组的列表;其listen(端口)方法用来创建一个http服务器实例,并绑定到给定端口(注意:此时服务器并未开启监听)

Tornado核心IOLoop循环模块

tornado的核心io循环模块,封装了Linux的epoll和BSD的kqueue,tornado高性能的基石。 以Linux的epoll为例,其原理如下图:

IOLoop.current() 返回当前线程的IOLoop实例。

IOLoop.start() 启动IOLoop实例的I/O循环,同时服务器监听被打开。

小结:

  1. tornado高性能Web原理是利用Linux epoll IO多路模型和协程异步编程

  2. tornado Web框架核心模块是 web 和 核心事件循环模块是 IOLoop

1.3基础应用

上面的例子是get请求,下面我们再来看一下post请求如何做

Post请求

复制代码
import tornado from tornado import ioloop,httpserver from tornado.web import RequestHandler,url from tornado.options import define,options   tornado.options.define("port",type=int,default=8002,help="服务器客户端") class IndexHandler(RequestHandler):     def post(self):         # a = self.get_body_arguments("a")         a = self.get_body_argument("a")         print(a)         self.write("a的值为%s"%
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信