Flask结合ECharts实现在线可视化效果,超级详细!

Flask结合ECharts实现在线可视化效果,超级详细!

相信大家都知道这个吧Flask!——它是微型Python框架
在这里插入图片描述
一、Flask基本介绍
Flask 是一个微型的 Python 开发的 Web 框架
Flask一般是Python开发者最常用的网站框架,原因就是因为Flask轻巧,精简,便捷。并且功能也齐全。

1.Flask安装

推荐使用最新版本的 Python 3 。 Flask 支持 Python 3.5 及更高版本的 Python 3 、 Python 2.7 和 PyPy 。

然后通过下面这个命令可以直接安装python

pip install flask
pip install flask_cors

2.Flask代码操作

之所以叫代码套路,是因为用Flask的时候,这些是必须写的,可以说是固定的

from flask_cors import *
from flask import Flask,render_template,request,Response,redirect,url_for
#内网ip
app = Flask(__name__)

if __name__ == "__main__":    
    """初始化,debug=True"""
    app.run(host='127.0.0.1', port=5000,debug=True)

参数:host是网站ip
端口设为5000,开启debug模式,真正上线的情况下可以去掉这个。

CORS(app, supports_credentials=True)

前后端分离或者在其他地方使用异步请求的时,需要加上这一行,这样才能解决跨域问题。

3.URL路由

第一种:跳转页面带参数

#跳转页面带参数
@app.route('/pie-nest')
def index():
    return render_template('pie-nest.html', roomid = roomid)

第二种:跳转页面不带参数

#跳转页面不带参数
@app.route('/pie-nest')
def index():
    return render_template('pie-nest.html')

第三种:Api接口返回Json数据

#Api接口返回Json数据
@app.route('/pie_nest_data')
def pie_nest_data():
    data_list = {}
    data1 = ['公众号:Python研究者','直达', '营销广告', '搜索引擎', '邮件营销', '联盟广告', '视频广告', '百度', '谷歌', '必应', '其他']
    data_list['data1'] = data1
    return Response(json.dumps(data_list), mimetype='application/json')

在这里插入图片描述

第四种:获取(传递)参数

@app.route('/alldata')
def alldata():
    d = request.args.get('d')
    return Response(json.dumps(d), mimetype='application/json')

在这里插入图片描述

二、ECharts的使用
可以直接百度ECharts或者通过下面链接都有可以找到ECharts官网

https://echarts.apache.org/examples/zh/index.html#chart-type-globe
在这里插入图片描述
可以看到很多的可视化图表,下面教大家如何引入到Flask中,并且可以通过Flask去修改数据,在网页端更新可视化中数据。
下面以这个图例为例

https://echarts.apache.org/examples/zh/editor.html?c=pie-nest
在这里插入图片描述
点击右上角的:下载实例
下载之后就是一个html文件
在和py文件同级目录下新建templates文件夹,将下载好的html文件夹放进去
在py文件中编写url路由

#进入页面
@app.route('/pie-nest')
def index():
    return render_template('pie-nest.html')

访问一下链接就可以出来可视化效果

http://127.0.0.1:5000/pie-nest
在这里插入图片描述

三、Flask结合ECharts
上面已经将html和放到Flask中,但是数据是固定的
在这里插入图片描述

为了让数据是动态的,下面通过Flask去修改数据,然后更新到html网页可视化中

#pie-nest-data
@app.route('/pie_nest_data')
def pie_nest_data():
    data_list = {}
    data1 = ['公众号:Python研究者','直达', '营销广告', '搜索引擎', '邮件营销', '联盟广告', '视频广告', '百度', '谷歌', '必应', '其他']
    data_list['data1'] = data1
    data2 = [
                {'value': 2000, 'name': 'Python研究者', 'selected': True},
                {'value': 1548, 'name': '搜索引擎'},
                {'value': 775, 'name': '直达'},
                {'value': 679, 'name': '营销广告'}
            ]
    data_list['data2'] = data2
    data3 =[
                {'value': 1048, 'name': '百度'},
                {'value': 335, 'name': '直达'},
                {'value': 310, 'name': '邮件营销'},
                {'value': 251, 'name': '谷歌'},
                {'value': 234, 'name': '联盟广告'},
                {'value': 147, 'name': '必应'},
                {'value': 135, 'name': '视频广告'},
                {'value': 102, 'name': '其他'}
            ]
    data_list['data3'] = data3
    return Response(json.dumps(data_list), mimetype='application/json')

访问下面这个链接就可以获取到json数据

http://127.0.0.1:5000/pie_nest_data

在这里插入图片描述

修改html

首先引入jquery文件,后面异步ajax请求需要用到
在py统计目录下新建static/js

添加异步请求代码

$.ajax({
    type:'GET',
    url:"http://127.0.0.1:5000/pie_nest_data",
    dataType:'json',
    success:function(data){
          console.log(data);
          //html原本的js代码
    }
});

修改html原本中的js代码(三处)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样我们就修改好了。

然后在访问一下

http://127.0.0.1:5000/pie-nest

在这里插入图片描述

ok,这样html可视化就是动态的,也成功将Flask和ECharts结合在一起
四、总结
如何利用Flask框架结合ECharts,将采集的数据实现在线可视化效果

如果大家对本文代码源码感兴趣,扫码关注公众号,后台回复:flask可视化 ,获取完整代码!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值