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

2 投票
1 回答
1501 浏览
提问于 2025-04-17 07:16

如何在运行时使用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())

如果你的URL是固定的,这样做没问题。但如果是用户自定义的URL呢?能不能在运行时创建这个树状结构?

我之所以问这个,是因为我想在CherryPy上创建一个内容管理系统(CMS),让用户可以指定自己的URL格式。例如,像http://example.com/my/custom/url这样的链接。

或者说,使用根索引作为一个通用的处理方式,只处理URL参数,这样会更好?

1 个回答

5

如果你喜欢的话,可以使用路由,或者用默认调度器的方法来构建一个root对象。我个人更喜欢默认的路由方式,这样更自然,也更适合代码的扩展。不过,有些人觉得把路由和应用逻辑分开来处理会更舒服,这就看你自己的选择了。

撰写回答