如何在CherryPy中动态创建请求处理程序?

Gro*_*ady 2 python cherrypy

如何使用CherryPy在运行时创建请求处理程序?默认的调度方法显示了显式创建处理程序对象并以这种方式构建树:

class OnePage(object):
    def index(self):
        return "one page!"
    index.exposed = True

class HelloWorld(object):
    onepage = OnePage()

    def index(self):
        return "hello world"
    index.exposed = True

cherrypy.quickstart(HelloWorld())
Run Code Online (Sandbox Code Playgroud)

假设您的URL是硬编码的,这很好.但是用户定义的URL呢?是否可以在运行时创建树?

我问的原因是我想在CherryPy上创建一个CMS,用户可以在其中指定自己的URL方案.例如.http://example.com/my/custom/url

或者将root索引用作catch-all并简单地处理url参数会更好吗?

cyr*_*joe 5

您可以使用路由,如果这是您的事情,或root使用默认调度程序方法构建对象,我个人使用默认路由,更自然,并伴随着代码的增长,但有些人感觉更舒服分离逻辑从路由到应用程序的概念,您的选择.