7

我有一个生成的烧瓶应用程序,它给了我这个回溯:

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 以及为什么它不可调用。这是我第一次看到这样的事情。

4

2 回答 2

5

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

尝试打印 的值,self.view_functions[rule.endpoint]看看结果如何。

于 2013-05-06T20:51:44.027 回答
1

当然,这是其中之一,可以有多个不同的修复(没有看到所有的原始源代码)。

我在 HTML 模板中遇到了与您相同的错误:

TypeError: 'str' object is not callable

我的解决方法是删除我(愚蠢的)获取原始请求变量的尝试:

my_form = request.form

并手动分配它们:

my_form.blah = request.form['blah']

有趣的是,my_form = request.form执行没有问题,它只是作为 HTML 模板中的错误浮出水面。

于 2021-10-09T23:42:28.027 回答