首页 >后端开发 >Python教程 >为什么我的 Flask 视图返回'TypeError: 'bool' object is not callable”?

为什么我的 Flask 视图返回'TypeError: 'bool' object is not callable”?

Linda Hamilton
Linda Hamilton原创
2024-12-10 06:02:10942浏览

Why Does My Flask View Return a `TypeError: 'bool' object is not callable`?

Flask View TypeError: 'bool' Object Not Callable

在 Flask 中,视图应该返回特定的数据类型,即:字符串、响应对象、字符串和状态代码的元组或有效的 WSGI 应用程序。但是,返回布尔值可能会导致错误: TypeError: 'bool' object is not callable.

当视图函数返回布尔值(而不是返回上述数据类型之一)时,就会发生这种情况(True或假)。 Flask 将此布尔值解释为 WSGI 应用程序并尝试调用它,从而导致错误。

要解决此问题,请确保视图函数返回受支持的数据类型之一。在给定的代码示例中,视图在用户成功登录后返回 True:

@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

要纠正此问题,它应该返回字符串、响应对象或元组,而不是布尔值:

@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 redirect(url_for('home'))  # Return a string or redirect

    return Response("Login failed", status=401)  # Return a Response object

以上是为什么我的 Flask 视图返回'TypeError: 'bool' object is not callable”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn