如何在同一樱桃应用程序中使用多个调度程序?

时间:2014-01-07 06:54:56

标签: cherrypy dispatcher

我有一个像这样的樱桃应用程序:

import cherrypy
from controllers import UsersController

class Root(object):


    exposed = True

    def index(self):
        return 'welcome'


if __name__ == '__main__':

    root = Root()
    root.users = UsersController()

    cherrypy.tree.mount(
        root,
        '/',
        {
            '/users' :  {'request.dispatch' : cherrypy.dispatch.MethodDispatcher()}
        }
    )

cherrypy.engine.start()
cherrypy.engine.block()

现在我希望使用MethodDispatcher()向/ users资源提供REST api,我想要一个'/'路径的默认调度程序(其中需要调用root.index())。而不是编写自己的RoutesDispatcher()有没有办法实现这一目标? (例如,如图所示对'/ users'使用MethodDispatcher(),对'/'使用DefaultDispatcher()?顺便说一句,我得到的错误是'Root' object is not callable

1 个答案:

答案 0 :(得分:2)

由于您的Root将与普通的调度员一起提供,因此应该是index.exposed = True