flask之pyecharts实时数据更新

我们用falsk来做个小demo 创建app.py 和 templates/index.html and templates/line_on.html

我们先写下前端的 index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Awesome-pyecharts</title>
    <script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
    <script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>
</head>
<body>
    <div id="bar" style="width:500px; height:300px;"></div>
    <script>
        var chart = echarts.init(document.getElementById(bar), white, {
          
   renderer: canvas});

        $(
            function () {
          
   
                fetchData(chart);
                setInterval(fetchData, 2000);


            }
        );
        function fetchData() {
          
   
            $.ajax({
          
   
                type: "GET",
                url: "http://127.0.0.1:5000/barChart",
                dataType: json,
                success: function (result) {
          
   
                    chart.setOption(result);
                }
            });
        }


    </script>
</body>
</html>

定时刷新的核心在于 HTML 的 setInterval 方法。

line_on.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Awesome-pyecharts</title>
    <script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
    <script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>

</head>
<body>
    <div id="bar" style="width:1000px; height:600px;"></div>
    <script>
        var chart = echarts.init(document.getElementById(bar), white, {
          
   renderer: canvas});
        var old_data = [];
        $(
            function () {
          
   
                fetchData(chart);
                setInterval(getDynamicData, 2000);
            }
        );

        function fetchData() {
          
   
            $.ajax({
          
   
                type: "GET",
                url: "http://127.0.0.1:5000/lineChart",
                dataType: "json",
                success: function (result) {
          
   
                    chart.setOption(result);
                    old_data = chart.getOption().series[0].data;
                }
            });
        }

        function getDynamicData() {
          
   
            $.ajax({
          
   
                type: "GET",
                url: "http://127.0.0.1:5000/lineDynamicData",
                dataType: "json",
                success: function (result) {
          
   
                    old_data.push([result.name, result.value]);
                    chart.setOption({
          
   
                        series: [{
          
   data: old_data}]
                    });
                }
            });
        }

    </script>
</body>
</html>

然后是我们的python代码

app.py

ok测试一下

经验分享 程序员 微信小程序 职场和发展