0

我一直致力于在 CherryPy 中实现测试 API。

我已经阅读了一些论坛、教程,并将工作中的老 Python 开发人员编写的代码拼凑在一起,这就是我所拥有的:

import json
import cherrypy

class person:
    def default(self, *args):
        r = {
            'firstName': args[0],
            'lastName': args[1],
            'age': args[2]
        }
        return json.dumps(r)
    default.exposed = True

class api:
    def __init__(self):
        self.person = person()

class Root:
    def __init__(self):
        self.api = api()

conf = {
    '/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher()}
}

cherrypy.config.update(conf)
cherrypy.tree.mount(Root()) 
cherrypy.quickstart()

运行此代码的结果是以下错误:

404 未找到

找不到路径“/api/person/Blake/Williams/27”。

回溯(最近一次通话最后):文件“/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/_cprequest.py”,第 656 行,响应 response.body = self.handler() 文件“/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/lib/encoding.py”,第 188 行,调用 self.body = self.oldhandler(*args, **kwargs) 文件“/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/_cperror.py”,第 386 行,在打电话给 自己

NotFound:(404,“找不到路径'/api/person/Blake/Williams/27'。”)

我不确定我做错了什么......在此先感谢您的帮助。

4

1 回答 1

1

如果你像这样启动你的cherrypy服务器,那么它可以工作:

cherrypy.quickstart(cherrypy.Application(Root()), '/', {})

注意:您指示的路径仍未找到:您忘记了api级别:

http://127.0.0.1:8080/api/person/Blake/Williams/27
于 2013-06-15T05:24:08.360 回答