ホームページ >バックエンド開発 >Python チュートリアル >Flask ビューが「TypeError: 'bool' object is not callable」を返すのはなぜですか?

Flask ビューが「TypeError: 'bool' object is not callable」を返すのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-10 06:02:10934ブラウズ

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

これを修正するには、ブール値の代わりに文字列、Response オブジェクト、またはタプルを返す必要があります:

@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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。