Flask+echarts+mysql实现数据大屏可视化

首先声明:此文章仅适用于初级编程小白,前端采用的原生js,并无任何框架,仅供学习大屏可视化原理的朋友可以参考一下,假如你没有学过python的flask框架,可以先读一读这篇文章,学下基础,链接地址flask基础
以下描述,我都是抓重点讲,讲解方法和思路,如需源代码可以私聊我。

1.flask结构框架
db包负责数据库的操作,将数据格式化,static负责存放css样式,图片以及js代码,templates就是app的跳转路径
2.先展示成品这是点击对比图,跳转到的界面
这是mysql数据库
3.实现代码:
<1>跳转至template的index.html,点击对比图url: /comp,获取数据

@app.route('/')
def hello_world():
    return render_template('index.html')


# 对比图需要获取的数据为每个监测点的数据

@app.route('/comp', methods=['POST', 'GET'])
def index_comp():
    axis_value = dict_to_json(comp())
    return (axis_value)`

<2>先看html页面中编写的点击对比图就会触发total_comp方法

<!--导航栏-->
    <div class="nav">
        <div class="total">
            <div class="map" onclick="total_map()">总览地图</div>
            <div class="comp" onclick="total_comp()">对比图</div>
        </div>

然后total_comp方法会触发ajax异步获取数据库数据,再带入echarts实现绘图

function total_comp() {
    
    
        //隐藏地图
        h_b_f("map1","none");
        // document.getElementById("location1").style.display = "none";
        //显示对比图
        h_b_f("comp","flex");
        // document.getElementById("comp").style.display = "flex";
    //获取全部数据
    $.ajax({
    
    
        url:'/comp',
        data:{
    
    },
        type:'POST',
        async:false,
        dataType:'json',
        success: function (data) {
    
    
        //此处省略数据定义,取出数据库数据,set_comp是生成echarts的自定义方法
        set_comp(myChart1,xtime,ytaoco2,ydongco2,yshengco2,"co2");
        }
//set_comp方法部分代码
function set_comp(echart,x1,y1,y2,y3,clazz) {
    
    
	var charts = {
    
    
	unit: '单位(**)',
	names: ['东极','桃花','嵊泗'],
	lineX: x1,
	value: [
	    y1,
	    y2,
	    y3
	]
	}
echart.setOption({
    
    
...
}

代码放在我的github里了,欢迎各位点星星代码下载地址
如果需要页面数据自动刷新,请转到这篇Flask+echarts+mysql+自动刷新
如有不正确的地方,欢迎各位大佬批评指正!!!

猜你喜欢

转载自blog.csdn.net/weixin_44165950/article/details/119881566