Tornado快速入门,代码详细注释
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
# tornado.options模块 用来从命令行读取设置
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
# tornado请求处理方法,当处理一个请求时,Tornado将这个类实例化,并调用与HTTP请求方法所对应的方法。
# 在这个例子中,我们只定义了一个get方法,也就是说这个处理函数将对HTTP的GET请求作出响应。
class IndexHandler(tornado.web.RequestHandler):
def get(self):
# get_argument从一个查询字符串中取得参数greeting的值。
# (如果这个参数没有出现在查询字符串中,Tornado将使用get_argument的第二个参数作为默认值。)
greeting = self.get_argument('greeting', 'Hello')
# write以一个字符串作为函数的参数,并将其写入到HTTP响应中。
# 在这里,我们使用请求中greeting参数提供的值插入到greeting中,并写回到响应中。
self.write(greeting + ', friendly user!')
if __name__ == "__main__":
# 解析命令行
tornado.options.parse_command_line()
# 创建Application实例类
# handlers参数告诉Tornado使用那个类来响应请求
# 参数handlers是一个元组组成的列表【(正则表达式-RequestHanlder类)】,可以指定多个元组
app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
# 将Application对象传递给httpserver对象
# 设置监听端口
# 创建IOLoop实例
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()