Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

610
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda