Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt meine Flask-Ansicht „TypeError: ‚bool'-Objekt ist nicht aufrufbar' zurück?
"TypeError: 'bool' object is not callable" in Flask Views: Fehlerbehebung
Einführung
Beim Debuggen einer Flask-Ansicht, die den Status 500 auslöst, können Entwickler auf Folgendes stoßen: Rätselhafter Fehler „TypeError: ‚bool‘-Objekt ist nicht aufrufbar.“ Dieser Artikel befasst sich mit der Ursache dieses Fehlers und bietet eine Lösung.
Den Fehler verstehen
Flask-Ansichten können verschiedene Typen zurückgeben, einschließlich Zeichenfolgen, Flask-Antwortobjekte und Tupel von (String, Status, Header) und WSGI-Anwendungen. Wenn der zurückgegebene Wert jedoch keinem der erwarteten Typen entspricht, interpretiert Flask ihn als WSGI-Anwendung.
Fehlerursache
Im bereitgestellten Beispiel: Die Ansicht gibt „True“ zurück, um eine erfolgreiche Anmeldung anzuzeigen. Der Bool-Wert „True“ ist jedoch keine gültige WSGI-Anwendung. Folglich geht Flask davon aus, dass es sich um eine WSGI-Anwendung handelt, und versucht, sie aufzurufen, was zu dem Fehler „TypeError: ‚bool‘-Objekt ist nicht aufrufbar“ führt.
Lösung
Um dieses Problem zu beheben, muss die Ansicht einen der gültigen Antworttypen zurückgeben, wie in der Flask-Dokumentation angegeben: Über Antworten. In diesem Fall wäre die Rückgabe eines Antwortobjekts mit dem Statuscode 200 und einer Meldung über eine erfolgreiche Anmeldung angemessen.
@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)
Indem Entwickler sicherstellen, dass die Ansicht einen gültigen Antworttyp zurückgibt, können sie den „TypeError“ verhindern : „Bool“-Objekt ist nicht aufrufbar“-Fehler und verbessern Sie die Zuverlässigkeit ihrer Flask-Anwendungen.
Das obige ist der detaillierte Inhalt vonWarum gibt meine Flask-Ansicht „TypeError: ‚bool'-Objekt ist nicht aufrufbar' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!