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 » ?

DDD
Libérer: 2024-12-18 03:42:20
original
874 Les gens l'ont consulté

Why Does My Flask View Return a

Comprendre TypeError : l'objet 'bool' n'est pas appelable dans les vues Flask

Lors du débogage d'une vue dans Flask qui renvoie un statut 500 avec le erreur "TypeError : l'objet 'bool' n'est pas appelable", il est crucial de comprendre les valeurs de retour attendues d'un fonction d'affichage.

Dans Flask, les vues doivent renvoyer l'un des éléments suivants :

  • Une chaîne
  • Un objet de réponse (ou sous-classe)
  • Un tuple de (string, status, headers) ou (string, status)
  • Un WSGI valide application

Le problème survient lorsqu'une vue renvoie une valeur booléenne, telle que True ou False, qui est confondue avec une application WSGI. Flask vérifie les trois premières options et suppose la quatrième si aucune ne correspond.

Pour résoudre cette erreur, assurez-vous que votre fonction d'affichage renvoie l'un des types valides répertoriés ci-dessus. Dans l'exemple de code fourni :

@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')
Copier après la connexion

La vue de connexion renvoie désormais un objet Response approprié lorsque la connexion est réussie (redirection vers la page d'accueil) ou restitue un modèle lorsque la connexion échoue. En adhérant aux types de retour corrects, vous pouvez éviter cette erreur et garantir le bon comportement de vos vues 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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal