为什么我会得到KeyError?

时间:2015-05-26 14:26:13

标签: python web.py

这是我的代码:

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 239, in process
return self.handle()
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 230, in handle
return self._delegate(fn, self.fvars, args)
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 419, in _delegate
cls = fvars[f]
KeyError: u'index/runs'

我收到以下错误:

{{1}}

大多数人似乎忘记实际创建类(在我的情况下运行)或者在需要时导入它失败。我没有找到任何其他解决方案而不是检查这些东西。

2 个答案:

答案 0 :(得分:5)

你忘记了一个逗号:

urls = (
    '/', 'index'
#               ^
    '/runs', 'runs'
)

如果没有逗号,Python会连接两个连续的字符串,所以你真的注册了:

urls = (
    '/', 'index/runs', 'runs'
)

你的globals()词典中没有这样的功能。

如果我添加逗号您的代码可以正常工作。

答案 1 :(得分:1)

Your code has a typo:

urls = (
    '/', 'index', # missing comma
    '/runs', 'runs'
)