【问题标题】:Why isn't my route working?为什么我的路线不起作用?
【发布时间】:2010-09-12 16:49:22
【问题描述】:

当我转到 /home/index 时,索引路由有效

但是为什么我输入 /home/test 不起作用

这是怎么回事,很迷茫!

导入日志

从 pylons 导入请求、响应、会话、tmpl_context as c、url 从 pylons.controllers.util 导入中止,重定向

从 helloworld.lib.base 导入 BaseController,渲染

log = logging.getLogger(name)

类 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

【问题讨论】:

  • 是的,另外我使用 --reload 加载服务器

标签: python pylons


【解决方案1】:

仔细检查您的缩进。如果 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"

【讨论】:

  • 很有趣,但为什么 'def index(..)' 有效?它的缩进不同??
  • 我的 def 都排成一行,索引有效,另一个无效。
  • 您可能会混合使用空格和制表符。如果您使用“paster controller hello”创建了您的控制器,则索引方法将使用 4 个空格自动创建缩进。您的编辑器可能配置为插入宽度为 4 个空格的制表符。因此,即使所有内容都排成一行,一种方法用空格缩进,另一种方法用制表符缩进。
猜你喜欢
  • 2015-05-20
  • 2018-03-04
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 2014-11-20
相关资源
最近更新 更多