Tornado 学习之路 -- 开始



Tornado 是一个 HTTP 框架,用 Python 编写,非常简洁而且高效。

使用 Tornado 的契机是,想要在新浪云上搭建自己的网站,免费版的只有使用 Python 的 wsgi 框架。试了许多种框架,比如 Flask,web.py,和 Tornado,对 Tornado 比较有感。


参考书籍:<Introduction to Tornado> by. Michael Dory, Adam Parrisb & Brendan Berg       O'REILLY


书本身不长,只有百来页,往后会记录一些学习过程中的笔记。


1. Mac 上安装 Tornado 比较简单,在 Terminal 里输入

pip install tornado
即可。


2. 第一个项目自然是 Hello World。

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 + ', friendly user!')
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()

示例代码还是比较短的,程序整体在我理解下是这样的:

        <1> 启动 Tornado 客户端

        <2> parse 命令行参数,这里是为了指定端口,默认8000,见 "define" 那行

        <3> 对请求的链接绑定一个方法,即访问根目录时(“/”),调用 IndexHandler 方法。

        <4> IndexHandler 方法本身会先 parse 请求链接,得到 greeting 这个参数的值,然后用 “write” 写一行文字,返回给请求端。

运行程序,在 Terminal 中,cd 到这个程序的目录下,输入

python hello.py --port=8000
就能开启Tornado 程序了。

访问刚才创建的网页,可以在浏览器里输入 http://localhost:8000,也可以在 Terminal 里输入

curl http://localhost:8000
返回的就是

Hello, friend user!
从这个 Hello 可以看出来,IndexHandler 里的那个 get_argument 第二个参数是缺省值。如果指定 greeting 的值,如
curl http://localhost:8000/?greeting=Welcome
返回的就是
Welcome, friend user!
喜闻乐见

也就是说,通过 get_argument 可以解析带参数的 GET 请求了,然后用 Python 的一些函数做一些处理,最后再返回给请求端。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值