为什么我的路由不起作用?

1 投票
1 回答
568 浏览
提问于 2025-04-16 04:02

当我访问 /home/index 时,路由可以正常工作。

但是当我输入 /home/test 时,它就不行了。

这里到底出了什么问题,我很困惑!

我在代码里引入了日志记录的功能。

然后从 pylons 框架中引入了一些东西,比如请求、响应、会话、模板上下文和网址。

还引入了一些控制器的工具,比如中止和重定向。

我还从一个叫 helloworld 的库中引入了基本控制器和渲染功能。

我创建了一个日志记录器。

接着我定义了一个叫 HelloController 的控制器,它继承自 BaseController。

def index(self):
    # Return a rendered template
    #return render('/hello.mako')
    # or, return a string
    return 'Hello World from index() action!'


def test(self):
return 'blah'

然后我遇到了这个错误:

WebError Traceback:
⇝ NotImplementedError: Action u'test' is not implemented
View as:   Interactive  |  Text  |  XML (full)
URL: http://127.0.0.1:5000/hello/test
Module weberror.evalexception:431 in respond          view
>>  app_iter = self.application(environ, detect_start_response)
Module beaker.middleware:152 in __call__          view
>>  return self.wrap_app(environ, session_start_response)
Module routes.middleware:131 in __call__          view
>>  response = self.app(environ, start_response)
Module pylons.wsgiapp:107 in __call__          view
>>  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:312 in dispatch          view
>>  return controller(environ, start_response)
Module helloworld.lib.base:15 in __call__          view
>>  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:211 in __call__          view
>>  response = self._dispatch_call()
Module pylons.controllers.core:168 in _dispatch_call          view
>>  action)
NotImplementedError: Action u'test' is not implemented

1 个回答

2

仔细检查一下你的缩进。如果def test(self)和类的缩进在同一水平上,你就不会遇到缩进错误。

下面这个会出现缩进错误:

class HelloController(BaseController):
    def index(self):
        return "hello from index()"

  def test(self):
        return "blah"

而这个就不会:

class HelloController(BaseController):
    def index(self):
        return "hello from index()"

def test(self):
    return "blah"

撰写回答