ホームページ > バックエンド開発 > Python チュートリアル > Flask ビューで TypeError: 'bool' Object is Not Callable が発生するのはなぜですか?

Flask ビューで TypeError: 'bool' Object is Not Callable が発生するのはなぜですか?

Patricia Arquette
リリース: 2024-12-17 07:49:25
オリジナル
371 人が閲覧しました

Why Does My Flask View Raise a TypeError: 'bool' Object is Not Callable?

Flask View Raising TypeError: 'bool' Object Not Callable

Flask アプリケーションを開発するときに、「TypeError: '」というエラーが発生することがあります。 bool' オブジェクトは呼び出し可能ではありません。」これは通常、ビュー関数が Flask の有効な応答ではないブール値を返した場合に発生します。

Flask ビューの応答を理解する

Flask ビューは、次のいずれかを返すことができます。次の種類の応答:

  • String
  • 応答オブジェクトまたはサブクラス
  • (文字列、ステータス、ヘッダー) または (文字列、ステータス) のタプル
  • 有効な WSGI アプリケーション

問題

指定されたケースでは、ユーザーがログインに成功すると、ビュー関数は True を返します。ブール値は Flask の有効な応答タイプではありません。その結果、Flask は戻り値を WSGI アプリケーションとして解釈し、エラーが発生します。

解決策

この問題を解決するには、ビュー関数が 1 つを返すようにしてください。受け入れられた応答タイプの数。この場合、単に Response オブジェクトを返してログインの成功を示すことができます。

from flask import 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 Response(status=200)  # Successful login

    return Response(status=401)  # Unsuccessful login
ログイン後にコピー

適切なステータス コードを含む Response オブジェクトを返すことで、TypeError を解決し、ビュー関数が確実にユーザーを処理できるようにすることができます。正しくログインしてください。

以上がFlask ビューで TypeError: 'bool' Object is Not Callable が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート