python - example - Vista de matraz aumenta TypeError: el objeto ''bool'' no se puede llamar
login flask (1)
En Flask, una vista debe devolver uno de los siguientes:
- una cuerda
- un objeto de
Response
(o subclase) - una tupla de
(string, status, headers)
o(string, status)
- una aplicación WSGI válida
Flask prueba las primeras 3 opciones, y si no encajan, asume que es la cuarta. Has devuelto True en algún lugar, y en su lugar se trata como una aplicación WSGI.
Consulte Acerca de las respuestas en la documentación.
Estoy intentando depurar una vista en mi aplicación Flask que devuelve un estado 500 con el error TypeError: ''bool'' object is not callable
en la trazabilidad. La vista llama a login_user
desde Flask-Login y luego devuelve True
para indicar que el inicio de sesión fue exitoso.
He depurado hasta app_iter = app(environ, start_response)
y ahora la app
es booleana con el valor True
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