添加新处理程序以运行python tornado服务器

Son*_*rge 3 python tornado

我是python龙卷风服务器的新手,我正在为我的下一个必须在实时环境中工作的项目评估python tornado.我使用Web Socket实现从github运行示例代码.

这是示例代码段.

    app = web.Application([
       (r'/', IndexHandler),
       (r'/ws', SocketHandler),
       (r'/api', ApiHandler),
       (r'/(favicon.ico)', web.StaticFileHandler, {'path': '../'}),
       (r'/(rest_api_example.png)', web.StaticFileHandler, {'path': './'}),
   ])

   if __name__ == '__main__':
       app.listen(8080)
       ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

代码按预期工作正常.

是否有可能提供类似云的解决方案,以便我可以动态地向Web应用程序添加新路由和处理程序,而无需重新启动服务器侦听端口.

例如; 服务器开始运行并为路由'/'提供index.html,它有n个查看器.如果新的要求附带路由'/ foo'将被提供给foo.html而不阻塞路由'/'的n个观看者.如果没有重新启动服务器,有什么可能的处理方法.

And*_*huk 6

你需要tornado.web.Applicationadd_handlers方法; 像这样用它:

app.add_handlers(
    r".*",  # match any host
    [
        (
            r"/foo/([^/]*)",
            FooHandler
        ),
        (
            r"/bar/([^/]*)",
            BarHandler
        ),
    ]
)
Run Code Online (Sandbox Code Playgroud)

从它的代码来看,它不会阻止任何事情.