首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CherryPy中使用映射

在CherryPy中使用映射
EN

Stack Overflow用户
提问于 2012-06-21 16:30:22
回答 1查看 2.5K关注 0票数 2

“调度/其他调度员”文档的CherryPy部分中,有一个Django风格的正则表达式到视图函数映射定义的例子,但是没有说明如何将它附加到cherrypy.tree

你应该如何注册这张地图?

编辑:基于cherrypy-users Google组中的"regex URL映射“线程,我可以发现要使用正则表达式附加视图,需要使用cherrypy.dispatch.RoutesDispatcher类使用routes-style映射,如下所示:

代码语言:javascript
复制
def hello(name='stranger'):
    """Sample view."""
    return 'Hello, %s!'%name

dispatch = cherrypy.dispatch.RoutesDispatcher()
dispatch.connect('hello-1', '/hello', hello)
dispatch.connect('hello-2', '/hello/{name:([^/]+)}', hello)
cherrypy.tree.mount(None, config={
        '/': {
             'request.dispatch': dispatch,
            }
        })

注意URL模式中的{argument-name:regular-expression}语法。

有没有一种方法可以使用CherryPy文档中所示的对对列表语法来指定路由模式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 02:16:16

不需要任何额外的步骤。在请求期间,cherrypy.tree执行第一个路由阶段,其中传入的请求使用其路径到应用程序的映射映射到应用程序。当您在启动时调用tree.mount(root=None, script_name='/', config=conf)时,树在幕后为您创建一个cherrypy.Application,并在'/‘处挂载它。

一旦找到了应用程序,它的配置就会接管,文档中示例应用程序的"request.dispatch“配置会说”这个应用程序中的所有URI都使用RoutesDispatcher“。然后,该RoutesDispatcher实例将将请求的控制传递给适当的Controller。

文档中的regex示例甚至还没有得到很好的开发。您需要编写,使用它的调度程序。这个过程“只”需要找到处理程序并收集request.config,但这两个活动可能非常复杂,取决于所选择的分派样式。请参阅现有的调度员以获得灵感。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11142625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档