本人是新手程序员,写文章是为了记录学习,文章中多有错误,还望大家谅解,并指出问题。
本文用到的技术与工具:python,tornado,pycharm,hosts等。
代码中的红色标记表示可以自行定义的部分,其余都是一个模式。
1、导包
import tornado.ioloop import tornado.web
2、创建应用对象
app = tornado.web.Application( handlers=[(r"/", TestHandler), ] )
3、设置端口
app.listen(80)
4、控制web程序启动,监听端口的连接
tornado.ioloop.IOLoop.current().start()
这上面三步就是最简单服务器的创建了,当然还有一步,对象app中的TestHandler类还没定义。
5、定义TestHandler类,并添加一个方法,这里用get方法举例
class TestHandler(tornado.web.RequestHandler): def get(self): self.write('OK')
以上就完成了简单服务器的创建,下面是完整代码截图:

tornado服务器完整代码
本地服务器IP是127.0.0.1,r"/"代表根目录,端口之所以设置80是因为80端口默认是隐藏
的,绝大多数网站的域名都是用的80端口,
例如:http://www.XXX.com 原本是:http://www.XXX.com:80 但是:80被自动隐藏了
所以,运行程序,在浏览器中输入127.0.0.1:80或者127.0.0.1应该都可以访问服务器根目录
的,并且访问后最终显示始终会隐藏掉":80",大家自行尝试一下;如果服务器创建成功,
访问服务器根目录会在页面显示“OK”,如图:

访问服务器成功!
简单的服务器已经创建完成,要在这个服务器上实现域名的二次跳转(重定向),需要用到
tornado中的redirect方法。
我这里用短链接举例,访问短链接地址,首先会跳转到原始链接,这里我希望这个短链接
跳转到我指定的链接,此时就需要redirect了。
我在本地服务器上进行测试,由于我使用的短链接的原始链接是不存在的,所以我在本地服
务器创建了一个虚拟域名以供测试,关于虚拟域名的的创建可以参考我的上一篇文章win10系
短链接:http://t.cn/A6y6qtT5
虚拟域名地址:http://002.kc01.cn/SbANPS
目标域名地址:http://www.runoob.com
完整代码:
import tornado.ioloop import tornado.web class TestHandler(tornado.web.RequestHandler): def get(self): self.write('OK') class tttHandler(tornado.web.RequestHandler): def get(self): # redirect重定向 可以实现内部和外部跳转 # 内部:self.redirect('/abc') self.redirect('http://www.runoob.com') class abcHandler(tornado.web.RequestHandler): def get(self): self.write('abc') app = tornado.web.Application( handlers=[(r"/", TestHandler), (r"/SbANPS", tttHandler), (r"/abc", abcHandler), ] ) if __name__ == "__main__": app.listen(80) tornado.ioloop.IOLoop.current().start()
运行服务器,访问短链接,

访问短链接http://t.cn/A6y6qtT5效果图
和预期一样跳转到了http://www.runoob.com地址,成功!既然外部跳转都可以,内部跳
转当然不在话下,大家可以动手尝试一下,感谢阅读!