Python大屏看板最全教程之数据库连接

阅读本文大约需要3分钟

Python大屏看板最全教程之数据库连接_第1张图片

主要内容:数据分析。

适用人群:Python初学者,数据分析师,或有志从事数据分析工作的人员。

准备软件:Anaconda(Spyder:代码编译)、Navicat Premium 12(数据库)。

此图来自于网络,侵删

从事IT项目管理这么多年,基本上已经遗弃编程技能,但从2019年开始接触Python,深深地迷上了这门语言,像硬件集成、数据分析,我都会用python来写。晓风想通过本文,让初学者们学会以下内容:

1、Pyecharts图表;

2、连接数据库;

3、大屏看板-监控中心。

今天,我们讲2、连接数据库

Python大屏看板最全教程之数据库连接_第2张图片

接上文,还是以柱状图为例。

1、首先,我们打开Navicat,“文件 - 新建连接 - MYSQL”,我这边起名新连接为“datacenter”,点击右键,新建数据库“warehouse_input”(名字可以自己起)

Python大屏看板最全教程之数据库连接_第3张图片

2、建完数据库,我们来建自己的数据库表,保存

Python大屏看板最全教程之数据库连接_第4张图片

3、点击该表,维护一些测试数据,完成数据库内容的创建

4、回到Anaconda - Spyder,打开之前编写的图表文件或新建文件,我们先把柱状图的代码修改为函数形式

from pyecharts import options as opts
from pyecharts.charts import Bar,Page
import pymysql


def bar(cos): #柱状图  
    c = (      
        Bar(init_opts=opts.InitOpts(bg_color="white"))
            .add_xaxis(costomer)
            .add_yaxis("订单数量", quantity)
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
            .set_global_opts(                   
                    title_opts=opts.TitleOpts("客户订单数量"),           datazoom_opts=opts.DataZoomOpts(is_show=True,range_start=0,range_end=100),                toolbox_opts=opts.ToolboxOpts(orient="vertical",pos_left="90%",feature=opts.ToolBoxFeatureOpts(data_zoom=opts.ToolBoxFeatureDataZoomOpts(is_show=False)))
                    )
     )
    return c

5、添加import pymysql(连接数据库需要),from operator import itemgetter(将数据参数化时需要),这里我想呈现各客户的订单数量,那么SQL语句和连接数据库的代码如下

import pymysql
from operator import itemgetter


db = pymysql.connect(host="localhost", user="root", password="123456", database="warehouse_input")
sql = "select customer_name,sum(cloth_quantity) AS nums from po GROUP BY customer_name"
try:
    cursor = db.cursor()
    cursor.execute(sql)
    cos = cursor.fetchall()
except Exception as e:
    db.rollback()
    print('事物处理失败',e)
else:  
    db.commit()
    print('事物处理成功',cos) 
cursor.close()
db.close() 

6、接下来我们结合柱状图函数和数据库连接的内容,加入page函数

from pyecharts import options as opts
from pyecharts.charts import Bar,Page
import pymysql
from operator import itemgetter


def bar(cos): #柱状图  
    costomer = list(map(itemgetter(0), cos))
    quantity = list(map(itemgetter(1), cos))
    c = (      
        Bar(init_opts=opts.InitOpts(bg_color="white"))
            .add_xaxis(costomer)
            .add_yaxis("订单数量", quantity)
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
            .set_global_opts(                   
                    title_opts=opts.TitleOpts("客户订单数量"),
                    datazoom_opts=opts.DataZoomOpts(is_show=True,range_start=0,range_end=100),
                    toolbox_opts=opts.ToolboxOpts(orient="vertical",pos_left="90%",feature=opts.ToolBoxFeatureOpts(data_zoom=opts.ToolBoxFeatureDataZoomOpts(is_show=False)))
                    )
     )
    return c




db = pymysql.connect(host="localhost", user="root", password="123456", database="warehouse_input")
sql = "select customer_name,sum(cloth_quantity) AS nums from po GROUP BY customer_name"
try:
    cursor = db.cursor()
    cursor.execute(sql)
    cos = cursor.fetchall()
except Exception as e:
    db.rollback()
    print('事物处理失败',e)
else:  
    db.commit()
    print('事物处理成功',cos) 
cursor.close()
db.close()   




page = Page() 
page.add(
         bar(cos)
         )
page.render("bar.ht

7、最后,我们运行下,看下效果

Python大屏看板最全教程之数据库连接_第5张图片

 

学习到了这里,我们就可以学会了图表的动态数据呈现。好了,大家赶紧动起来,有空就把所有图表都操作一遍。今天的内容就到这里,下篇文章将会教大家怎么将多个图表布局在一个大屏上,敬请期待。愿我们一起成长!

如果觉得有用的话,请帮忙点赞、关注、收藏哦,感谢您的支持!

你可能感兴趣的:(ofter数据科学,数据库,python,数据分析,大数据,mysql)