python-tornado 简单服务器创建和实现域名二次跳转(重定向)
文兄今天摸鱼了吗
2020年07月12日 11:22

    本人是新手程序员,写文章是为了记录学习,文章中多有错误,还望大家谅解,并指出问题。

    本文用到的技术与工具: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&#​39;)

以上就完成了简单服务器的创建,下面是完整代码截图:

tornado服务器完整代码

    本地服务器IP是127.0.0.1,r"/&#​34;代表根目录,端口之所以设置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系​

统hosts修改及简单使用​

    短链接: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&#​39;) class tttHandler(tornado.web.RequestHandler):    def get(self):        # redirect重定向 可以实现内部和外部跳转        # 内部:self.redirect(&#​39;/abc')        self.redirect('http://www.runoob.com&#​39;) class abcHandler(tornado.web.RequestHandler):    def get(self):        self.write('abc&#​39;) app = tornado.web.Application(    handlers=[(r"/&#​34;, TestHandler),            (r"/SbANPS&#​34;, tttHandler),            (r"/abc&#​34;, abcHandler),              ] ) if __name__ == "__main__&#​34;:    app.listen(80)    tornado.ioloop.IOLoop.current().start()


    运行服务器,访问短链接,

访问短链接http://t.cn/A6y6qtT5效果图

    和预期一样跳转到了http://www.runoob.com地址,成功!既然外部跳转都可以,内部跳

转当然不在话下,大家可以动手尝试一下,感谢阅读!