Tornado安装与“Hello World”
拖了很久,最近终于要开始学Tornado了,其实这篇文章应该是5月初写的,然后就一直没有时间来写,也没有时间继续学。希望这次能够有时间好好学一下,并且研读一下Tornado的源码。
1.环境
OS: Ubuntu 13.04 64bits
Python: 2.7.4
Tornado: 3.1
2.下载与安装Tornado
我们可以在Tornado的官网上下载Tornado的压缩包(很小,只有大约300+k),然后执行下面的步骤进行离线安装:
1 2 3 4 |
tar xvzf tornado-3.1.tar.gz cd tornado-3.1 python setup.py build sudo python setup.py install |
当然也可以使用pip进行安装:
1 |
pip install tornado |
在Windows下执行离线安装时,使用Linux下离线安装的后两句(删除sudo),安装后执行下面的Hello World没有问题,但更多的功能可能会受限,没有进行尝试。
3.Hello World
下面使用《Introduction to Tornado》第一章中的例子作为Hello World,因为它相比于官网的例子多介绍了 1.命令行参数的使用;2.get参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#! /usr/bin/python # -*- coding:utf-8 -*- 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', 'Hello') self.write(greeting + ', 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() |
加执行权限后,执行./hello.py --port=12345
启动服务器。
在本地浏览器打开http://localhost:12345/可以看到:
Hello, tornado!
打开http://192.168.86.132:12345/?greeting=Bye可以看到:
Bye, tornado!
下面来逐句进行解释:
行4-7:引入tornado的部分模块。
行9-10:tornado.options模块可以从命令行中读取配置,如同shell里面的getopt一样。这里我们定义了一个设置选项,名为port,即端口。default表示默认值,help表示在帮助中显示的信息,type表示该设置参数的类型,如果类型匹配错误会报错。
行12-15:这是一个页面请求的Handler。目前只有一个get方法,该方法表示Http的Get请求。
RequestHandler类有一些有用的内建方法,其中get_argument
可以用来像上面执行过程中的第二个网址一样添加参数,如果没有则显示为默认值(get_argument方法的第二个参数)。
而另一个常用的内建方法write
,它的目的是将其中的字符串写在页面中。
行18:从命令行中取得配置参数。
行19:建立一个tornado应用。handlers是一个由一系列二元组组成的列表,其中每个二元组的第一个元素是一个正则表达式,表示网址路由,如果其中包含捕获分组,则将匹配的内容送往RequestHandler;第二个元素是所使用的RequestHandler类。
行20:使用这个tornado应用创建一个http服务器。
行21:设置http服务器的监听端口。
行22:启动服务器。
本文内容遵从CC3.0版权协议,转载请注明:转自Pythoner
本文链接地址:Tornado安装与“Hello World”
请问,网站采用的代码高亮提示用的是什么库?
Crayon Syntax Highlighter