2015-07-11 100 views
0

当用户使用超过3个子路径的URL(例如“domain.com/var1/var2/var3/var4”)登录我的应用程序时,它抛出下面的错误:AttributeError:'NotFound'对象没有'encode'属性

Traceback (most recent call last): 
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ 
return self.wsgi_app(environ, start_response) 
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app 
response = self.make_response(self.handle_exception(e)) 
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception 
reraise(exc_type, exc_value, tb) 
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app 
response = self.full_dispatch_request() 
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1478, in full_dispatch_request 
response = self.make_response(rv) 
File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1574, in make_response 
rv = self.response_class(rv, headers=headers, status=status) 
File "/usr/local/lib/python2.7/site-packages/werkzeug/wrappers.py", line 758, in __init__ 
self.status = status 
File "/usr/local/lib/python2.7/site-packages/werkzeug/wrappers.py", line 862, in _set_status 
self._status = to_native(value) 
File "/usr/local/lib/python2.7/site-packages/werkzeug/_compat.py", line 111, in to_native 
return x.encode(charset, errors) 
AttributeError: 'NotFound' object has no attribute 'encode' 

它工作正常的网址有小于或等于3点的子路径,如“domain.com/var1/var2/var3”,但我对URL的有1个,2路,和3个子路径。

如何让我的应用程序转到404 Page Not Found方法而不是抛出此错误?

谢谢!

编辑.. 这里是我使用的路由方法的一个pastebin。 http://pastebin.com/kjYsqk9n

对不起,我不能提供这个问题的例子,它真的很奇怪,我不知道如何自己重现它。我其他的烧瓶应用程序工作正常,这一个没有。如果有人需要澄清,请让我知道...感谢您的帮助!

+0

我认为我们需要再看一点烧瓶代码才能够确切地说出任何事情 - 您是否可以发布相关的代码?你的视图代码的一部分可能? – Walker

+0

嘿,谢谢你的回复。我把相关的烧瓶代码放在一个pastebin中:http://pastebin.com/kjYsqk9n –

+0

谢谢!当您导航到其他不存在的页面时,404s是否正常发生? – Walker

回答

0

找出它为什么返回该错误。原来我在这行的末尾传入错误对象而不是“404”:

return render_template("error.html", usa=usa, canada=canada, breadcrumbs=breadcrumbs, error_code=e), 404 

谢谢!

相关问题