Flask ビューの「TypeError: 'bool' object is not callable」: トラブルシューティング
はじめに
500 をトリガーする Flask ビューをデバッグするときこのステータスでは、開発者は「TypeError: 'bool' object is not callable」という謎のエラーに遭遇する可能性があります。この記事では、このエラーの原因を詳しく調べ、解決策を示します。
エラーについて
Flask ビューは、文字列、Flask Response オブジェクト、タプルなどのさまざまな型を返すことができます。 (文字列、ステータス、ヘッダー)、および WSGI アプリケーションの。ただし、返された値が予期される型のいずれにも一致しない場合、Flask はそれを WSGI アプリケーションとして解釈します。
エラーの原因
この例では、ビューは True を返し、ログインが成功したことを示します。ただし、ブール値 True は有効な WSGI アプリケーションではありません。その結果、Flask はそれが WSGI アプリケーションであると想定し、それを呼び出そうとします。その結果、「TypeError: 'bool' object is not callable.」というエラーが発生します。
Solution
この問題を解決するには、ビューは Flask ドキュメント「応答について」で指定されている有効な応答タイプの 1 つを返す必要があります。この場合、ステータス コード 200 とログイン成功を示すメッセージを持つ 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("Login successful", status=200) return Response("Login failed", status=401)
ビューが有効な応答タイプを返すようにすることで、開発者は「TypeError」を防ぐことができます。 : 'bool' object is not callable」エラーを解決し、Flask アプリケーションの信頼性を向上させます。
以上がFlask ビューが「TypeError: 'bool' object is not callable」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。