tornado基本web应用结构
分为两大块类
Application对象(只会实例化一次)
路由表URl映射 (r'/', MainHandler)
关键词参数settings
RequestHandler子类
主入口点: 处理HTTP方法
产生相应
render或者write
错误处理或者重定向等
可供复写的方法
每个请求的调用序列
常用的复写方法
结合hello.py函数
from datetime import datetime
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
# self.write_error(500) # 输出错误响应
# self.set_status(500) # 设置错误响应
def prepare(self): # 先被执行
print('prepare' + str(datetime.now()))
self.write('in prepare')
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.redirect(r'/') # 重定向
class PictureHandler(tornado.web.RequestHandler):
def get(self):
self.write('<img height="160" width="230" src="https://tse2-mm.cn.bing.net/th?id=OIP.VvmsvFfpntCllfa7uQbfrQHaEK&w=230&h=160&c=7&o=5&pid=1.7">')
def make_app():
return tornado.web.Application([
(r"/", MainHandler), # 路由表映射
(r"/index/", IndexHandler),
(r'/pic/', PictureHandler),
],
debug=True, # setting关键字
)
if __name__ == "__main__":
app = make_app()
app.listen(8000)
tornado.ioloop.IOLoop.current().start()