tornado是一个非阻塞的web服务器框架,每秒可以处理上千个客户端连接(都是在一个线程中,不需要为每个客户端创建线程,资源消耗少),适合用来开发web长连接应用,如long polling(轮询),WebSocket协议等(http协议为短连接)。

1,简单使用

#coding:utf-8
import tornado.ioloop
import tornado.web
from controllers.login import LoginHandler

class HomeHandler(tornado.web.RequestHandler):   #处理'/index'的请求,若是get请求,即调用get方法
    def get(self, *args, **kwargs):
        self.write('home page')

settings = {
    'template_path':'views'   #配置html文件的目录,即html文件存储在views文件夹路径下
  'static_path':'statics', # 配置静态url路径,用来存放cssjs文件等
} app = tornado.web.Application([ (r'/index',HomeHandler), # 路由分发器,HomeHandler为该路由的处理类 (r'/login',LoginHandler), ],**settings) #加入配置文件 if __name__ == '__main__': app.listen(8080) #监听端口号 tornado.ioloop.IOLoop.instance().start() #开启服务器

  上面代码即建立起一个web服务器,在浏览器输入127.0.0.1:8080/index, 就会得到包含‘home page’字符的网页。另外,上面将所有代码写在了有个代码文件中,也可以利用MVC的设计方式分开来写,如下面的的架构和代码:将处理‘/login’请求的类LoginHandler放在controllers文件夹下,将视图文件login.html放在views文件夹下(需要配置‘template_path’),而models文件夹下可以存放和数据库处理相关的代码,statics中存放静态文件,如css,js等,需要配置路径:'static_path':'statics'。

tornado框架学习

 

#coding:utf-8

import tornado.ioloop
import tornado.web
from controllers.login import LoginHandler

class HomeHandler(tornado.web.RequestHandler):   #处理'/index'的请求,若是get请求,即调用get方法
    def get(self, *args, **kwargs):
        self.write('home page')

settings = {
    'template_path':'views'   #配置html文件的目录,即html文件存储在views文件夹路径下
}
app = tornado.web.Application([
    (r'/index',HomeHandler),   # 路由分发器,HomeHandler为该路由的处理类
    (r'/login',LoginHandler),
],**settings)  #加入配置文件

if __name__ == '__main__':
    app.listen(8080)        #监听端口号
    tornado.ioloop.IOLoop.instance().start()  #开启服务器
app.py

相关文章: