当前位置: 首页 > 面试题库 >

Python-Flask视图引发TypeError:“ bool”对象不可调用

经和歌
2023-03-14
问题内容

我试图调试我的Flask应用程序中的视图,该视图返回500状态,并TypeError: 'bool' object is not callable在追溯中出现错误。然后login_userFlask-Login进行的视图调用返回True以指示登录成功。

我进行了调试,直到app_iter = app(environ, start_response),app现在是具有值True而不是Flask应用程序对象的布尔值。

Traceback (most recent call last):
  File "D:\Python27\lib\site-packages\flask\app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "D:\Python27\lib\site-packages\flask\app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "D:\Python27\lib\site-packages\flask\app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "D:\Python27\lib\site-packages\flask\app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "D:\Python27\lib\site-packages\flask\app.py", line 1478, in full_dispatch_request
    response = self.make_response(rv)
  File "D:\Python27\lib\site-packages\flask\app.py", line 1577, in make_response
    rv = self.response_class.force_type(rv, request.environ)
  File "D:\Python27\lib\site-packages\werkzeug\wrappers.py", line 824, in force_type
    response = BaseResponse(*_run_wsgi_app(response, environ))
  File "D:\Python27\lib\site-packages\werkzeug\wrappers.py", line 57, in _run_wsgi_app
    return _run_wsgi_app(*args)
  File "D:\Python27\lib\site-packages\werkzeug\test.py", line 854, in run_wsgi_app
    app_iter = app(environ, start_response)
TypeError: 'bool' object is not callable
@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    user = User.query.filter_by(username=username).first()

    if user:
        login_user(user)
        return True

    return False

问题答案:

在Flask中,视图必须返回以下之一:

  • a string
  • a Response object (or subclass)
  • a tuple of (string, status, headers) or (string, status)
  • a valid WSGI application

前三个选项的Flask测试,如果不合适,则假定为第四个。你在某个地方返回了True,它将被视为WSGI应用程序

请参阅文档中的关于响应。



 类似资料:
  • 我正在尝试调试 Flask 应用中返回 500 状态的视图,错误为 在回溯中不可调用。视图调用来自 Flask-Login 然后返回 以指示登录成功。 我已经调试到现在是值为的布尔值,而不是Flask应用程序对象。

  • 问题内容: 我尝试在视图中使用,但收到错误`TypeError:’bool’对象不可调用。为什么会出现此错误,我该如何解决? 问题答案: 当您尝试表现对象的方法或功能时,会发生“对象不可调用”错误。 在这种情况下: 您将current_user.is_authenticated表现为一种方法,而不是一种方法。 您必须以这种方式使用它: 您在方法或函数(而不是对象)之后使用“()”。 在某些情况下,

  • 问题内容: 遇到一个似乎很普遍的问题,但我已经完成了研究,并且看不到它在任何地方都被完全重新创建了。当我打印时,我看到了所需的输出。但是,当我打电话给return时,它显示了这个错误。有任何想法吗?非常感谢您的帮助,谢谢。我正在使用Flask 。 这是Traceback(请记住上面的结果在打印): 问题答案: Flask只希望视图返回类似响应的对象。 这表示描述主体,代码和标题的,字符串或元组。您

  • 问题内容: 码: 第一次工作,然后第二次出现错误: 有人知道为什么是这样吗? 我已经尝试过了,但出现错误: 问题答案: 这就是问题: 你正在重新定义什么意思。是字符串类型的内置Python名称,你不想更改它。 为本地变量使用其他名称,然后删除该语句。

  • 问题内容: 给定以下整数和计算 结果是: 如何将输出舍入为整数? 问题答案: 给定以下整数和计算 结果是: 如何将输出舍入为整数?

  • 问题内容: 我正在尝试使用flask在浏览器中显示已连接设备的列表。我在端口8000上启用了flask: 在server.py中: 在app.py中: 这是我的测试: 但我不断收到此错误: 在检查ttyUSB,…和其他设备是否存在时,我做错什么了吗? 问题答案: 问题在于您的端点正在返回列表。Flask只喜欢某些返回类型。可能最常见的两个是 一个对象 一个(与Python 2.x一起使用) 您还可