如何刷新烧瓶网页?

时间:2017-08-14 02:23:58

标签: python html flask

最近,我有一个项目是在网页上实现动态绘图。

这是我的python代码

from flask import Flask
#from flask import render_template
import matplotlib.pyplot as plt
import io
import base64

app = Flask(__name__)

@app.route('/plot')
def build_plot():

    img = io.BytesIO()

    y = [1,2,3,4,5]
    x = [0,2,1,3,4]
    plt.plot(x,y)
    plt.savefig(img, format='png')
    img.seek(0)

    plot_url = base64.b64encode(img.getvalue()).decode()

    return '<img src="data:image/png;base64,{}">'.format(plot_url)
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

这是我的HTML代码

<!DOCTYPE html>
<html>
    <head>
        <title> Plot</title>
        <meta content='5; url=http://127.0.0.1:5000/plot' http-equiv='refresh'>
    </head>
    <body>
        <img src="data:image/png;base64, {{ plot_url }}">
    </body>
</html>

虽然我在我的HTML代码中添加了<meta content='5; url=http://127.0.0.1:5000/plot' http-equiv='refresh'>,但它仍然无法自动刷新。

如果我想观察绘图的变化,我仍然需要手动刷新它。

任何人都可以帮我解决这个问题吗?非常感谢

1 个答案:

答案 0 :(得分:4)

您不需要包含URL。只使用meta代码的内容属性。

<meta http-equiv="refresh" content="5" >

但要查看图表中的实时更改,您可能需要查看烧瓶中的sockets。这将有助于服务器使用broadcasting将更改推送到所有客户端。使用套接字比定期刷新页面更好。