第一个tornado程序

本文通过一个简单的示例介绍了如何使用Tornado框架编写第一个Web程序。代码中定义了一个RequestHandler子类,处理GET请求,并展示在localhost的8000端口上运行的效果。同时,解释了Tornado的底层工作原理,包括如何处理命令行参数、正则表达式路由以及IOLoop的运行机制。
摘要由CSDN通过智能技术生成

看的教程是link

代码

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 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()

效果

使用links查看localhost的8000端口

links http://localhost:8000

在这里插入图片描述

links http://localhost:8000/?greeting=Salutions

在这里插入图片描述
运行的终端显示

[root@iZbp13shnvge588mi3dnjqZ ~]# python3 /home/tornado/hello.py
[I 200611 14:00:13 web:2250] 200 GET / (127.0.0.1) 2.37ms
[I 200611 14:02:55 web:2250] 200 GET /?greeting=Salutions (127.0.0.1) 1.39ms

原理

define("port", default=8000, help="run on the given port", type=int)

定义了一个可以从终端读取的参数port

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'Hello')
        self.write(greeting + ', friendly user!')

定义了一个tornado.web.RequestHandler的子类,用来处理请求。get函数用来处理GET请求,其中

greeting = self.get_argument('greeting', 'Hello')

用于从字符串中获取greeting的值,默认为Hello。另外

self.write(greeting + ', friendly user!')

使用了write方法,用于把字符串写入HTTP响应。

tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/",IndexHandler)])

首先使用tornado.options.parse_command_line()来解析命令行,然后创建了一个tornado.web.Application类,传递handlers参数。handlers参数是 正则表达式-RequestHanlder类 对,正则表达式用于匹配并传给RequestHanlder

http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()

使用Application,监听端口,最后创建IOLoop类运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值