Flask:TypeError:'str'对象不可调用

时间:2013-05-06 20:43:32

标签: python flask

我有一个生成的烧瓶应用程序给我这个追溯:

Traceback (most recent call last):
  File "/home/.virtualenvs/j/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/.virtualenvs/j/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/home/.virtualenvs/j/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/.virtualenvs/j/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/.virtualenvs/j/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/.virtualenvs/j/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
TypeError: 'str' object is not callable

但我现在无法确定原因或原因。该应用程序启动并且似乎正在运行,但是当我尝试访问路线时,这个追踪会窒息。

这是什么以及会导致什么?我不是什么对象是str,为什么它不可调用。这是我第一次看到这样的东西。

编辑:

是的,所以我将视图函数作为字符串传递而不是函数,并且错误消息没有陷入;直到我回到它并得到一些关于这个问题的反馈之后我才意识到这一点。这是一个合理的问题,其他人可能会在将来遇到同样的问题,所以我不确定为什么这会被贬低 - 这对你来说可能是显而易见的,并不是立即给我,也许不是对某人否则立即。

1 个答案:

答案 0 :(得分:4)

这意味着self.view_functions[rule.endpoint]是一个字符串,而不是一个函数,因此无法调用(使用(...)运算符)。也就是说,如果没有你的代码,很难说出问题:Flask希望调用一个函数并获取一个字符串。你使用过@app.route装饰了吗?

尝试打印self.view_functions[rule.endpoint]的值,看看会发生什么。