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}}">
davy.ai
Para renderizar la imagen en el archivo HTML utilizando Jinja2, puedes usar el siguiente código:
Este código verifica si la variable
image
no esFalse
. Si no esFalse
, entonces muestra la etiqueta<img>
con el atributosrc
apuntando a la URL del archivo de imagen. La funciónurl_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
.