Tornado(一) 安装及Demo

1. 安装

tornado的官网:http://www.tornadoweb.org/

a) 直接下载安装包

$ curl -L -O https://github.com/facebook/tornado/archive/v3.1.0.tar.gz
$ tar xvzf v3.1.0.tar.gz
$ cd tornado-3.1.0
$ python setup.py build
$ sudo python setup.py install

b) 从github上下载

$ git clone https://github.com/tornadoweb/tornado.git
$ cd tornado
$ python setup.py build
$ sudo python setup.py install

c) 使用pip安装

sudo pip install tornado

测试

安装完成后在python中测试一下,是否安装成功
$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tornado
>>> 
现在python已经安装成功

2. Hello Tornado

Demo hello.py

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'my friend')
        self.write('Hello ' + greeting + ', This is Tornado!')

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

逐句解读

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
导入了一些Tornado模块
tornado.httpserver — 一个无阻塞HTTP服务器的实现
tornado.ioloop — 核心的I/O循环
tornado.options — 解析终端参数
tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
导入define,optins这两个模块,用于设置从读取参数和设置默认参数
上面的define是添加了一个port参数,默认8000,帮助文档,以及这个参数接收的类型int,我们用它来指定http监听的端口
如果在命令行参数中也有一个port的同名参数,那么这个参数就会成为一个全局tornado.options的一个属性,
如果用户没有使用这个这一参数,就是用define中的默认参数
class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'my friend')
        self.write('Hello ' + greeting + ', This is Tornado!')
    这是tornado的请求处理函数类,当处理一个请求时,会将这个类实例化,并调取与HTTP请求的方式对应的方法,
    本例子是定义了get方法,也就是说这个处理函数将对HTTP的GET请求作出相应,实际上RequestHandler类中定义了处理这些http方法的函数。

    RequestHandler.get(*args, **kwargs)
    RequestHandler.head(*args, **kwargs)
    RequestHandler.post(*args, **kwargs)
    RequestHandler.delete(*args, **kwargs)
    RequestHandler.patch(*args, **kwargs)
    RequestHandler.put(*args, **kwargs)
    RequestHandler.options(*args, **kwargs)
greeting = self.get_argument('greeting', 'my friend')
Tornado的RequestHandler类有一系列有用的内建方法,包括getargument,我们在这里从一个查询字符串中取得参数greeting的值。(
如果这个参数没有出现在查询字符串中,Tornado将使用getargument的第二个参数作为默认值。)
self.write('Hello ' + greeting + ', This is Tornado!')
RequestHandler的另一个有用的方法是write,它以一个字符串作为函数的参数,并将其写入到HTTP响应中。
在这里,我们使用请求中greeting参数提供的值插入到greeting中,并写回到响应中。
if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
应用运行的入口,解析命令行参数
然后创建了一个Tornado的Application类的实例,并且handlers定义了根路径的路由和处理函数之间的映射
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
从这里开始的代码将会被反复使用:一旦Application对象被创建,我们可以将其传递给Tornado的HTTPServer对象,
然后使用我们在命令行指定的端口进行监听(通过options对象取出。)最后,在程序准备好接收HTTP请求后,我们创建一个Tornado的IOLoop的实例。

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值