Черрипи возвращается NotFound: (404, «Путь» / «не найден».) - PullRequest
5 голосов
/ 03 апреля 2012

Я новичок в cherrypy и пытаюсь смонтировать простое приложение hello world, но оно продолжает возвращать "NotFound: (404," Путь '/' не найден. ")", Но я определил его.

Вот что я получил,

В __ init __ .py

import cherrypy
from HomeNetMain import HomeNetMain

cherrypy.config.update("global.cfg")
#I have tried "" for the script name parm but that doesn't work
cherrypy.tree.mount(HomeNetMain,"/","main.cfg") 
cherrypy.engine.start()
cherrypy.quickstart()

В другом файле у меня

import cherrypy

class HomeNetMain:

    @cherrypy.expose
    def index(self):
       return "Hello World"

Я пробовал как с декоратором, так и с index.exposed = True безрезультатно (под вопрос, какой метод вишневого декоратора предпочтителен или index.exposed)

global.cfg

[global]
server.socket_host: "127.0.0.1"
server.socket_port: 9080
log.screen: True
log.error_file: "/tmp/cherrypy.error"
log.access_file: "/tmp/cherrypy.access"

main.cfg

[/]
log.screen: True
log.error_file: "/tmp/homenet.error"
log.access_file: "/tmp/homenet.access"

Я ценю любую помощь, заранее спасибо.

edit

Вот полная трассировка стека

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/lib/encoding.py", line 188, in __call__
self.body = self.oldhandler(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/_cperror.py", line 386, in __call__
raise self
NotFound: (404, "The path '/' was not found.")

Ответы [ 2 ]

4 голосов
/ 03 апреля 2012

Оказывается, я не должен был использовать cherrypy.quickstart (). Я изменил код на следующий, и он работал нормально

cherrypy.engine.start()
cherrypy.engine.block()
0 голосов
/ 03 апреля 2012

Монтируется класс HomeNetMain вместо экземпляра . Так как index не является методом класса, будет сгенерирована ошибка TypeError, которую фреймворк обрабатывает как 404.

cherrypy.tree.mount(HomeNetMain(), "/", "main.cfg")
...