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

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

Linda Hamilton
Libérer: 2024-12-10 06:02:10
original
930 Les gens l'ont consulté

Why Does My Flask View Return a `TypeError: 'bool' object is not callable`?

Flask View TypeError : 'bool' Object Not Callable

Dans Flask, les vues sont censées renvoyer des types de données spécifiques, à savoir : des chaînes, Objets de réponse, tuples de chaînes et codes d'état, ou applications WSGI valides. Cependant, renvoyer une valeur booléenne peut conduire à l'erreur : TypeError : l'objet 'bool' n'est pas appelable.

Cela se produit lorsque la fonction d'affichage, au lieu de renvoyer l'un des types de données susmentionnés, renvoie un booléen (True ou Faux). Flask interprète ce booléen comme une application WSGI et tente de l'appeler, ce qui entraîne l'erreur.

Pour résoudre ce problème, assurez-vous que la fonction d'affichage renvoie l'un des types de données pris en charge. Dans l'exemple de code donné, la vue renvoie True après avoir connecté avec succès un utilisateur :

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

    return False
Copier après la connexion

Pour remédier à cela, elle doit renvoyer une chaîne, un objet Response ou un tuple au lieu du booléen :

@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 redirect(url_for('home'))  # Return a string or redirect

    return Response("Login failed", status=401)  # Return a Response object
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal