es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Generar gráfico desde Python / Flask a HTML utilizando Jinja2

He escrito un montón de código pero por alguna razón no se está renderizando el gráfico dentro del HTML. Sin embargo, el programa se ejecuta y crea una imagen en la carpeta Static. ¿Alguien puede decirme cómo puedo pasar esta “imagen” en Jinja2 dentro del HTML para verla en el navegador?

Código de Flask:

@app.route('/', methods=['GET', 'POST'])
def index():
    image = False
    from flask import Flask, render_template, request
    if request.method == 'POST':
        a = int(request.form['a'])
        x = np.linspace(-20, 20, 20)
        y = a * x 
        plt.plot(x,y)
        plt.savefig('C:/Users/nombre/PycharmProjects/qtcalc1/static/image.png')
        image = url_for('static', filename = image)
        print(image)
        plt.show()

    return render_template('graphtry.html', image = image)

Nota: El código de la función de vista está correctamente indentado en mi caso. Necesito una solución para renderizar esta imagen en mi archivo HTML graphtry.html utilizando Jinja2. Mi código HTML actual es el siguiente:

<img src="{{image}}">
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para renderizar la imagen en el archivo HTML utilizando Jinja2, puedes usar el siguiente código:

    {% if image %}
        <img src="{{ url_for('static', filename=image) }}" alt="Imagen del gráfico">
    {% endif %}
    

    Este código verifica si la variable image no es False. Si no es False, entonces muestra la etiqueta <img> con el atributo src apuntando a la URL del archivo de imagen. La función url_for() genera una URL para un archivo estático, en este caso, el archivo de imagen.

    Puedes reemplazar tu código HTML actual con el bloque de código anterior para mostrar la imagen del gráfico en graphtry.html.

Comments are closed.