1

我在cherrypy Essentials中尝试了Routes Dispatcher示例,但它不起作用。它给我Page not found错误。我错过了什么?

import cherrypy
class Root:
    def index(self):
        return "Not much to say"
    def hello(self, name):
        return "Hello %s" % name
if __name__ == '__main__':
    root = Root()
    # Create an instance of the dispatcher
    d = cherrypy.dispatch.RoutesDispatcher()
    # connect a route that will be handled by the 'index' handler
    d.connect('default_route', '', controller=root)
    # connect a route to the 'hello' handler
    # this will match URIs such as '/say/hello/there'
    # but not '/hello/there'
    d.connect('some_other', 'say/:action/:name',
    controller=root, action='hello')
    # set the dispatcher
    conf = {'/': {'request.dispatch': d}}
    cherrypy.quickstart(root, '/', config=conf)
4

2 回答 2

4

我知道这个问题早就解决了,但我认为值得注意的是,我能够通过在连接的路径中添加一个起始斜杠来修复无法工作的路由:

d.connect('some_other', 'say/:action/:name',

d.connect('some_other', '/say/:action/:name',

希望这可以帮助某人。

于 2015-11-06T20:15:47.930 回答
-1

尝试暴露你的处理程序......

 @cherrypy.expose
 def index(self):
    return "Not much to say"
 @cherrypy.expose
 def hello(self, name):
    return "Hello %s" % name

安德鲁

于 2012-07-31T13:03:23.363 回答