Python+Docker+Flask+pyecharts实现数据可视化
阅读原文时间:2023年07月09日阅读:1

1、数据加工pyecharts图实现:

数据源:本地CSV文件

ps:由于是跟生产环境做交互,生产环境指标由HSQL加工,使用存储过程挂后台定时运行,后使用python实现导出及定时分发,本地python接收获取附件解压

2、上传文件至服务器

本地pycharm跑通后,把项目对应文件上传至服务器目录:

解压到/root/data_dashboard路径,该路径文件夹将作为挂载目录对应到python容器,后续只要修改该文件夹文件,即可对

ps:如果有需要避免源码泄露的需求,上传pycharm项目里面自带的pyc后缀文件即可,或者进入服务器后在编译成pyc格式文件。

3、创建容器

已有python镜像前提下,建立python容器,-d代码容器后台运行。容器建立三要点,端口映射/目录挂载/ip分段。

Flask默认5000端口,这里把容器5000端口映射到宿主机9500端口,目录挂载宿主机/root/data_dashboard下,后续所有Flask文件都在该路径下即可,

另外由于该Flask读取的是本地csv文件来实现,每天的更新通过自动替换该路径文件来实现,因此就不做IP地址设置(如果涉及数据库访问,一定要做固定IP设置)

docker run -it -d --name=p1 -p 9500:5000 -v /root/data_dashboard:/root/project python:3.6.9 bash

4、进入容器,安装所需的第三方库

进入容器,安装Flask框架,使用清华大学数据源。

docker exec -it p1 bash
pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple

安装pyecharts

pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple

5、启动任务

进入run.py对应文件夹,并执行运行命令即可

cd /root/project/dataMonitor
nohup python run.py > logs.txt

使用nohup命令,运行后把窗口关闭,就能后台一直运行

测试网页结果如下:

ps:9500的端口为建立容器时容器5000端口映射。

6、补充说明

该可视化监控的使用的实际上是生产数据,生产数据与本地有堡垒机做隔离,因此难点在于数据的自动化传输,毕竟生产环境只配置了一台服务器与本地之间做邮件通讯,上文只是对可视化实现步骤做呈现