【tornado】3.tornado原理及基础的tornado工程框架

tornado原理

在这里插入图片描述

  • tornado会将客户的socket交给epoll处理
  • 当有客户端需要服务时,tornado将IOLoop监听到的信息传给web.Application,通过app的路由来找到对应的handler页面
  • 最后handler直接将处理好的信息返回给socket


tornado的一般框架

tornado笔记1和tornado笔记2中的代码都是将所有内容整合到了一起,这样很不利于后期的扩展和开发。我们可以将一个tornado的框架整理至如下的形式:
在这里插入图片描述

文件内容
server.py服务器主文件,运行服务器时运行这个文件
里面只有server相关的代码,其他的全靠import
application.py存放了app的路由信息
config.py用于存放参数options和配置settings
views文件夹实际存放我们的各种Handler类
目前只有index.py文件,所有的handler类都存放在这个index.py里
template文件夹模板文件夹,主要是存放一些html页面,用于向客户端展示
upfile文件夹用于存放客户端上传过来的文件
static文件夹主要用来存放一些静态文件

一个实际的框架展示:
首先是我们的server.py:
import tornado.httpserver
import tornado.ioloop
import tornado.web

from application import Application  # 路由
from views import index  # 页面
import config  # 配置

if __name__=="__main__":
    app=Application()
    httpServer=tornado.httpserver.HTTPServer(app)
    httpServer.bind(config.options["port"])
    httpServer.start(1)
    tornado.ioloop.IOLoop.current().start()

可以看到首先server会import tornado的三件套(ioloop,web,httpserver)
然后是路由app、页面index及配置文件config

server.py的主体只有创建server的步骤,其他全靠import

然后是application.py:
from views.index import IndexHandler,HomeHandler
import tornado.web
import config

class Application(tornado.web.Application):
    def __init__(self):
        handlers=[
            (r'/',IndexHandler),
            (r'/home',HomeHandler)
        ]
        super(Application,self).__init__(handlers,**config.settings)

我们的路由application.py文件需要引入实际的index.py文件来正确地指向这些页面。

页面文件index.py:
from tornado.web import RequestHandler

class IndexHandler(RequestHandler):
    def get(self):
        self.write("test")

class HomeHandler(RequestHandler):
    def get(self):
        self.write("test:Home")

index.py中包含了我们所有的页面代码,这里我们有两个页面:IndexHandler和HomeHandler

配置文件config.py:
# 参数
options={
    "port":9000
}

# 配置
settings={
    "debug":True,
}

这里我们就设置两个东西:
端口号为9000
同时设置为debug模式,在这种模式下对代码的改动可以随时反应到服务器中而不用先叫停服务器、改动代码、再重新运行服务器测试



运行结果:

运行server.py文件,在浏览器里面输入:localhost:9000/ 时,显示的页面:
在这里插入图片描述
在浏览器里面输入:localhost:9000/home 时出现的页面:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值