Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

613
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!