一站制造工业项目之用flask实现前后端交互可视化

这是在整个程序的部署下用flask框架实现前后端的交互

首先我们要有之前理解的文章分层及已经配置好的环境下,并要有虚拟机,在文章末尾我会发出来

①开启我们的OneMake虚拟机,

②将快照切换到ST层

③ 用FinalShell连接好我们的虚拟机

 ④启动相关的环境镜像集群

⑤如果发现在pyechart上面运行出现下面报错

那么就说明spark submit怎么运行起来,我们需要进入到spark 容器里面

docker exec -it spark bash

执行下面语句

start-thriftserver.sh \

--name sparksql-thrift-server \

--master yarn \

--deploy-mode client \

--driver-memory 1g \

--hiveconf hive.server2.thrift.http.port=10001 \

--num-executors 3 \

--executor-memory 1g \

--conf spark.sql.shuffle.partitions=2

然后jps一下看进程,发现已经启动起来了

接下来我们可以测试一下

beeline -u jdbc:hive2://spark.bigdata.cn:10001 -n root -p 123456

select count(1);

发现spark sql语句可以执行,那么环境就没问题了

我们打开DataGrip,连接上我们的spark与hive(至于环境的配置资料里面都有)

在这里面可以看见我们的表信息及可以使用spark sql语句查询

接下来我们打开pycharm,运行我们的项目代码

在itcast里面存放着我们的html代码及我们项目的主程序入口EntranceApp.py

那就开始编写我们的程序代码

首先实例化flask对象
app = Flask(__name__)
解决浏览器中json数据,中文无法展示的问题
app.config['JSON_AS_ASCII']=False
#配置连接,spark
def get_conn():
    conn = hive.connect(
        host="192.168.88.100",
        username="root",
        database="one_make_st",
        password="123456",
        auth="CUSTOM",
        port=10001
    )
    cursor=conn.cursor()
    return conn,cursor
#关闭连接
def close_conn(conn,cursor):
    if cursor:
        cursor.close()
    if conn:
        conn.close()
#查询函数
def query(sql,*args):
    conn,cursor = get_conn()
    cursor.execute(sql,args)
    res = cursor.fetchall()
    close_conn(conn,cursor)
    return res

#将html代码展示

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

接下来开始编写我们的sql语句,及提交到前端数据

def pyspark_data1():
    res1 = query("SELECT t.oil_province,sum(t.wokerorder_num) AS value \
                 FROM  one_make_st.subj_worker_order t \
                 GROUP BY oil_province \
                 ORDER BY value DESC \
                 LIMIT 10")
    zuozhong_key = []
    zuozhong_value= []
    for i in res1:
        zuozhong_key.append(i[0])
        zuozhong_value.append(i[1])
    return zuozhong_key,zuozhong_value
@app.route("/sparkjson1")
#返回给前端数据
def sparkjson1():
    data=pyspark_data1()
    print(data)
    return jsonify({"char1_name": data[0], "char1_value": data[1]})

里面的sql语句这是查询每个省的工单数量有多少

然后我们只需要在index.js上编写接收参数,并将参数运用在图表当中即可,下面就是一个例子

$(function(){
    // char_1();
    // function char_1() {
        let myChart = echarts.init(document.querySelector(".zhuzhuangtu1 .chart"));

        $.ajax({
            url:"http://127.0.0.1:5000/sparkjson1",
            success:function(data){
                option = {
                    tooltip: {
                      trigger: 'axis',
                      axisPointer: {
                        type: 'shadow'
                      }

                    },
                    grid: {
                      left: '3%',
                      right: '4%',
                      bottom: '3%',
                      containLabel: true
                    },
                    xAxis: [
                      {
                        type: 'category',
                        data: data.char1_name,
                        axisTick: {
                          alignWithLabel: true
                        },
                        axisLabel:{
                            textStyle: {
                                color: '#B0CEFC'  // 图例文字颜色
                            }
                        }
                      }
                    ],
                    yAxis: [
                      {
                        type: 'value',
                        axisLabel:{
                            textStyle: {
                                color: '#B0CEFC'  // 图例文字颜色
                            }
                        }
                      }
                    ],
                    series: [
                      {
                        name: 'Direct',
                        type: 'bar',
                        barWidth: '60%',
                        data: data.char1_value,
                        itemStyle: {
                            normal: {
                                color: '#4ad2ff'
                            },
                        }
                      }
                    ]
                  };
                // 使用刚指定的配置项和数据显示图表。
                myChart.setOption(option);
            },
            error:function(xhr, type, errorThrown){
            }
        });
        window.addEventListener("resize",function(){
            myChart.resize();
        });

    // }
});

让我们打开游览器看看最终的效果是什么样的

这就是最终效果图了,只需连接一个图表怎么制作后,剩下的都很简单。

下面就是所有的集群及代码链接,需要的人可以拿

链接:https://pan.baidu.com/s/15oOg_g4k1YV50LnwvKsLPw?pwd=khr6 
提取码:khr6

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 使用Python、Echarts和Flask可以实现数据可视化大屏。 首先,我们可以使用Python编数据处理和分析的代码,将数据从数据库、CSV文件或其他数据源中提取出来,并进行必要的预处理和计算。Python有很多数据处理库,如Pandas和Numpy,可以帮助我们方便地处理各种数据。 接下来,我们可以使用Echarts库来进行数据可视化。Echarts是一个基于JavaScript的图表库,可以为数据创建各种类型的图表,如柱状图、折线图、饼图等。我们可以将数据从Python传递给Echarts,并使用Echarts的API来生成相应的图表。 最后,我们可以使用Flask来构建一个Web应用程序,用于展示数据可视化大屏。Flask是一个基于Python的微型Web框架,可以帮助我们快速构建简单而强大的Web应用程序。我们可以在Flask应用程序中创建路由,定义前端页面,并将Echarts生成的图表嵌入到页面中。然后,我们可以使用Flask运行应用程序,将其部署到服务器上。 总结起来,使用Python、Echarts和Flask可以实现一个数据可视化大屏。Python用于数据处理和分析,Echarts用于生成图表,Flask用于构建Web应用程序和展示图表。这种组合可以帮助我们方便地实现数据可视化大屏,并提供交互性和动态性。 ### 回答2: 使用Python、Echarts和Flask可以很方便地实现数据可视化大屏。 首先,使用Python编后端代码,使用Flask框架进行Web应用的开发。通过Flask,可以建立一个HTTP服务器,处理数据传输和前端页面的请求。可以在后端编数据处理的逻辑,获取数据并对其进行处理,然后将处理后的数据传递给前端。 其次,使用Echarts库进行数据可视化。Echarts是一个基于JavaScript的开源图表库,提供了多种类型的图表,包括折线图、柱状图、饼图等。通过在前端页面引入Echarts库,在页面上渲染图表,显示数据的可视化效果。可以使用Echarts提供的API和样式设置,来调整图表的显示效果。 最后,将前端页面与后端代码进行连接。可以利用Flask的模板引擎,将后端处理的数据传递给前端页面,然后在前端页面上使用JavaScript的方式来处理数据,将数据传递给Echarts进行图表的渲染显示。 通过以上步骤,我们可以实现一个基于Python、Echarts和Flask的数据可视化大屏。 ### 回答3: 使用Python、Echarts和Flask可以很方便地实现数据可视化大屏。下面是实现的步骤: 1. 安装所需的库:在Python环境中安装Echarts库和Flask库。 2. 准备数据:根据需要的可视化效果,准备好要展示的数据。可以从本地文件、数据库或者通过网络请求获取数据。 3. 使用Flask创建Web应用:使用Flask框架创建一个简单的Web应用,用于展示数据可视化大屏。可以创建一个路由来处理数据请求,并将数据传递给前端页面。 4. 使用Echarts创建可视化图表:在前端页面中使用Echarts库创建图表。Echarts提供了丰富的图表类型和配置选项,可以根据需求选择合适的图表类型,并按照需求进行配置。 5. 前后端交互:在前端页面中使用Ajax或者其他方法,向后端发送请求获取数据。后端接收到数据请求后,返回需要展示的数据。 6. 数据动态更新:可以使用定时任务或者其他方法,定期更新数据并在前端展示。可以根据需求设置更新数据的频率。 7. 界面美化:根据需要可以对页面进行美化和优化,例如设置背景、调整图表样式、添加动画效果等,以提升用户体验。 8. 发布部署:将完成的Web应用部署到服务器上,可以通过浏览器访问。 通过以上步骤,我们就可以使用Python、Echarts和Flask实现数据可视化大屏。这样可以方便地展示数据,并通过图表形式直观地展示数据的变化和趋势。同时,使用Web应用可以方便地远程访问和共享数据可视化大屏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值