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

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

DDD
DDDオリジナル
2024-12-18 03:42:20874ブラウズ

Why Does My Flask View Return a

TypeError について: 'bool' オブジェクトは Flask ビューでは呼び出し可能ではありません

Flask で 500 ステータスを返すビューをデバッグするときエラー「TypeError: 'bool' オブジェクトは呼び出し可能ではありません」。期待される戻り値を理解することが重要です。 view 関数。

Flask では、ビューは次のいずれかを返す必要があります:

  • 文字列
  • Response オブジェクト (またはサブクラス)
  • (文字列、ステータス、ヘッダー) または (文字列、ステータス) のタプル
  • 有効な WSGI application

この問題は、ビューが WSGI アプリケーションと誤って True や False などのブール値を返す場合に発生します。 Flask は最初の 3 つのオプションをチェックし、一致しない場合は 4 番目のオプションを想定します。

このエラーを解決するには、ビュー関数が上記の有効な型のいずれかを返すようにしてください。提供されたコード例では:

@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 flask.redirect(flask.url_for('home'))

    return flask.render_template('login.html')

ログイン ビューは、ログインが成功した場合 (ホームページにリダイレクトされる) に適切な Response オブジェクトを返し、ログインが失敗した場合にはテンプレートをレンダリングするようになりました。正しい戻り値の型に従うことで、このエラーを回避し、Flask ビューの適切な動作を保証できます。

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

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