python tornado学习第一天:笔记分享

Lacie ·
更新时间:2024-09-21
· 687 次阅读

学习tornado之前,请先了解这些:

tornado的高性能原理(工作原理):

服务端一开始会监听一个端口,收到连接请求,会为客户端生成一个socket,这个socket给epoll帮忙管理;如果再有一个连接请求,又会生成一个socket给epoll管理,epoll外层是tornado的IOLoop的实例对象,这个对象会一直询问epoll有没有什么可以帮忙的,当epoll发现socket发送请求的时候,epoll就告诉tornado.web.Application类,这里面存着路由映射表,就会给请求映射路由,匹配到某个Handler上,于是Handler就处理请求,然后返回数据到原来的socket里面了,socket就传给了客户端,如此就完成了服务端和客户端的HTTP的数据传输。

一般流程:
输入一个网址 – > 匹配路由 – > 执行Handler – > 执行对应请求的方法来响应浏览器

安装tornado库:
您可以直接通过pip安装tornado,前提是您需要先改源
改源教程戳这里
改源之后,输入pip install tornado即可

本文需要用到的两个模块:
tornado.ioloop模块:
tornado的核心IO循环模块(等着客户端连接),封装了[Linux的epoll]和BSD的kqueue,这是tornado高效的基础

tornado.web模块:
tornado的基础web框架模块

开始吧!

业务处理类:
类比Django中的视图
视图是处理请求的,请求:GET、POST…
这是个业务处理类,这个类在命名的时候习惯在后面加一个Handler
简单来说,业务处理类就是处理请求用的
例如:

#必须继承tornado.web.RequestHandler类 class IndexHandle(tornado.web.RequestHandler): def get(self,*args,**kwargs): #处理get请求 pass #随着学习的深入,您也可以在这里定义其他方法来处理各种请求

生成一个应用(app):
app = tornado.web.Application([(r"绑定的网址目录" , 业务处理类)])

生成app的一个服务器,并监听某个端口:
app.listen(端口号) #端口号是一个int型
注意,此时并未开始监听,也没有启动生成的这个服务器
要启动这个服务器,并开始监听端口,请看下面

tornado.ioloop.IOLoop.current().start()
#IOLoop.current()会返回当前线程的IOLoop实例
IOLoop.start():启动了IOLoop实例的I/O循环,相当于在此开启了一个死循环,同时开启监听
啥是I/O?可以认为是读写,数据的传输

小提示:上面的listen是生成,而start是开始

示例: #运行这段代码之前,您必须确保您已经安装了tornado库,否则将会报错 import tornado.web import tornado.ioloop #创建业务处理类 class IndexHandle(tornado.web.RequestHandler): #处理get请求 def get(self,*args,**kwargs): self.write('你好啊') if __name__ == '__main__': #生成一个应用: app = tornado.web.Application([(r'/',IndexHandle)]) #生成服务器,监听8080端口: app.listen(8080) #启动上面生成的服务器,并开始监听: tornado.ioloop.IOLoop.current().start() #运行以上代码,然后打开浏览器,在地址栏输入127.0.0.1:8080,会看到“你好啊”
作者:IsaiahX



tornado Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号