2013-06-15 1 views
0

Я работал над внедрением тестового API в CherryPy.Путь не найден в CherryPy

Я прочитал несколько форумов, учебники и кусочки код, который написал старый разработчик 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 Not Found

The path '/api/person/Blake/Williams/27' was not found.

Traceback (most recent call last): File "/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond response.body = self.handler() File "/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in call self.body = self.oldhandler(*args, **kwargs) File "/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/_cperror.py", line 386, in call raise self

NotFound: (404, "The path '/api/person/Blake/Williams/27' was not found.")

Я не уверен, что я делаю неправильно ... Заранее благодарим за любую помощь.

ответ

1

Если вы начинаете свой CherryPy сервер, как это, то он работает:

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

! Внимание: Путь вы указываете еще не найден: вы забыли api уровень:

http://127.0.0.1:8080/api/person/Blake/Williams/27 
+0

Спасибо за ответ. Казалось, это трюк. –