Maison >développement back-end >Tutoriel Python >Pourquoi ma vue Flask renvoie-t-elle « TypeError : l'objet 'bool' n'est pas appelable » ?
"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!