Maison >développement back-end >Tutoriel Python >Pourquoi ma vue Flask renvoie-t-elle « TypeError : l'objet 'bool' n'est pas appelable » ?

Pourquoi ma vue Flask renvoie-t-elle « TypeError : l'objet 'bool' n'est pas appelable » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 06:54:16204parcourir

Why Does My Flask View Return

"TypeError : l'objet 'bool' n'est pas appelable" dans Flask Views : Dépannage

Introduction

Lors du débogage d'une vue Flask qui déclenche un statut 500, les développeurs peuvent rencontrer le erreur énigmatique "TypeError : l'objet 'bool' n'est pas appelable." Cet article examine la cause de cette erreur et propose une solution.

Comprendre l'erreur

Les vues Flask peuvent renvoyer différents types, notamment des chaînes, des objets de réponse Flask et des tuples. de (chaîne, statut, en-têtes) et applications WSGI. Cependant, si la valeur renvoyée ne correspond à aucun des types attendus, Flask l'interprète comme une application WSGI.

Cause de l'erreur

Dans l'exemple fourni, la vue renvoie True pour indiquer une connexion réussie. Cependant, la valeur booléenne True n'est pas une application WSGI valide. Par conséquent, Flask suppose qu'il s'agit d'une application WSGI et tente de l'appeler, ce qui entraîne l'erreur "TypeError : l'objet 'bool' n'est pas appelable."

Solution

Pour résoudre ce problème, la vue doit renvoyer l'un des types de réponse valides comme spécifié dans la documentation Flask : À propos des réponses. Dans ce cas, il serait approprié de renvoyer un objet Response avec un code d'état de 200 et un message indiquant une connexion réussie.

@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)

En garantissant que la vue renvoie un type de réponse valide, les développeurs peuvent empêcher l'erreur "TypeError : l'objet 'bool' n'est pas appelable" et améliore la fiabilité de leurs applications Flask.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn