1. 介绍
介绍使用python来抽取数据库信息,并分析生成报告,文中提到一些有用的模块,分享出来希望对大家有所帮助。
2. 设计流程

3. 设计功能
包括信息采集入库并分析,excel读取模板,并生成表格和图示,邮件发送,口令加密,独立配置文件。
4. 模块分析
数据库模块:在此模块内定义写入和获取数据的SQL,并返回获取到的数据。使用cx_Oracle模块连接ORACLE数据库,针对oracle数据库较好的支持,此模块依赖ORACLE客户端,必须安装oracle客户端。linux可以使用oracle轻量客户端,然后编译安装此模块。
部分代码:
Excel模块:分析数据库返回的数据,并生成excel报表,其中包含表格信息,以及趋势图。在设计中,使用了excel模板,依靠xlrd读取excel模板数据,并使用xlsxwriter模块写入和生成图表,wlsxwrite官网为: http://xlsxwriter.readthedocs.io
部分代码:

邮件模块:发送自动生成的excel报告,使用smtplib和email模块,邮件内容为html格式,带附件发送。189邮箱smtp服务器默认是25,比如像腾讯邮箱,需要制定端口,需要添加参数port=465
部分代码:

加密模块:针对程序中设计的密码加密,可以自己写加密方法
配置文件:配置数据库登陆信息和邮件信息,使用ConfigParser模块分析配置文件
配置文件内容:

主程序:程序的执行入口,包括实例化数据库连接类,excel类,调用邮件发送。
部分代码:

5. 生成报告
样式如下:


两个颜色轮训,可以在程序内控制,配色也是我一直用的配色。
6. 功能扩展
如果需要采集其他信息,可以在db类内添加方法并返回,另外监控oracle日志信息,也可以由python分析,然后入库并展示。




