Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

609
Vistas
La mensajería flash no funciona en Flask

No he podido hacer que la función de flash funcione en el matraz. Aquí está mi código.

 #!venv/bin/python3 from flask import Flask, flash app = Flask(__name__) app.config['SECRET_KEY'] = '12345' @app.route('/') def index(): flash('Hi') return 'Hello' if __name__ == '__main__': app.run()

Esperaba que esto mostrara un mensaje diciendo hola, pero cuando cargo la página, no aparece ningún cuadro flash. ¿Qué no estoy entendiendo aquí?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Creo que el principal problema es que está devolviendo una cadena y no una render_template que maneja el flash y lo convierte en un mensaje de visualización. Consulte este código de documentación aquí para ver un ejemplo de cómo manejar los flashes

Así que sugiero probar: return render_template('index.html')

Y luego use el archivo index.html para configurar su código que maneja el mensaje flash. Tengo la sensación de que simplemente devolver una cadena, como lo ha hecho aquí, sin un lugar para que el código entienda el flash, dará un resultado nulo.

over 4 years ago · Santiago Trujillo Denunciar

0

 #!venv/bin/python3 from flask import Flask, flash, redirect app = Flask(__name__) app.config['SECRET_KEY'] = '12345' @app.route('/') def index(): flash('Hi') return redirect('index.html') return render_template('index.html') if __name__ == '__main__': app.run()

Puede hacer los siguientes cambios en su código de importación, redireccionar y redirigirlo a cualquier página html para mostrar el mensaje flasheado. En este caso, index.html y en la página index.html, debe usar la plantilla jinja para obtener el mensaje flash y mostrarlo en página para eso usamos get_flashed_messages()

En el archivo index.html agregue el siguiente código

 <body> {% for mesg in get_flashed_messages() %} <h1>{{ mesg }}</h1> {% endfor %} </body>
over 4 years ago · Santiago Trujillo Denunciar

0

Ha pasado un tiempo desde que se hizo la pregunta. Publicaré mi respuesta aquí ya que llegué a esta pregunta de alguna manera.

Como escribió Miguel Grinberg en "Flask Web Development: Developing Web Applications with Python":

Llamar a flash() no es suficiente para que se muestren los mensajes; las plantillas utilizadas por la aplicación deben representar estos mensajes.

Entonces, cualquier persona que tenga el mismo problema, solo asegúrese de agregar la función get_flashed_messages() a la plantilla y luego mostrar un mensaje. Para la referencia puedes mirar:

Python Flask flash no funciona correctamente ,

y seguro el libro de Miguel Grinberg mencionado arriba, Capítulo 4.

Esperamos que esto sea útil.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda