La vista Flask genera TypeError: el objeto ‘bool’ no se puede llamar

2 minutos de lectura

La vista Flask genera TypeError el objeto bool no se
StefanE

Estoy tratando de depurar una vista en mi aplicación Flask que devuelve un estado 500 con el error TypeError: 'bool' object is not callable en el rastreo. La vista llama login_user de Flask-Login luego regresa True para indicar que el inicio de sesión fue exitoso.

He depurado hasta app_iter = app(environ, start_response) y el app ahora es un booleano con el valor True en lugar del objeto de la aplicación Flask.

Traceback (most recent call last):
  File "D:\Python27\lib\site-packages\flask\app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "D:\Python27\lib\site-packages\flask\app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "D:\Python27\lib\site-packages\flask\app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "D:\Python27\lib\site-packages\flask\app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "D:\Python27\lib\site-packages\flask\app.py", line 1478, in full_dispatch_request
    response = self.make_response(rv)
  File "D:\Python27\lib\site-packages\flask\app.py", line 1577, in make_response
    rv = self.response_class.force_type(rv, request.environ)
  File "D:\Python27\lib\site-packages\werkzeug\wrappers.py", line 824, in force_type
    response = BaseResponse(*_run_wsgi_app(response, environ))
  File "D:\Python27\lib\site-packages\werkzeug\wrappers.py", line 57, in _run_wsgi_app
    return _run_wsgi_app(*args)
  File "D:\Python27\lib\site-packages\werkzeug\test.py", line 854, in run_wsgi_app
    app_iter = app(environ, start_response)
TypeError: 'bool' object is not callable
@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

La vista Flask genera TypeError el objeto bool no se
Martijn Pieters

En Flask, una vista debe devolver uno de los siguientes:

  • una cuerda
  • a Response objeto (o subclase)
  • una tupla de (string, status, headers) o (string, status)
  • una aplicación WSGI válida

Pruebas de matraz para las primeras 3 opciones, y si no encajan, asume que es la cuarta. Devolvió True en alguna parte y, en su lugar, se trata como una aplicación WSGI.

Ver Acerca de las respuestas en la documentación.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad