运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程

有关前两篇的链接:

一、实验环境:

Python2.7.10、pycharm、VM虚拟机、CentOS6.3、mysql

二、MySQLdb模块:

MySQLdb模式是Python中专门连接MySQL数据库的模块,另外Python开发环境的搭建真心感觉比其他的麻烦好多。。。这次光安装这个MySQLdb这个模块就花了好长时间,遇到好多问题,不过幸好还是成功使用上了,稍后我会加上一篇我是怎么安装的教程,会列出我遇到的问题供大家参考。

三、实现:

这里先介绍一下数据库,我们使用的是安装在CentOS上的MySQL数据库。数据库的安装这里不做介绍。

在MySQL中我们把所有表放在名为linux的数据库中,数据库包含两张表:存放linux信息数据的linux表中,存放硬盘数据的fdisk表中

这两个表的SQL:

1 CREATE TABLE linux //linux表2 (3 os_version VARCHAR(1000) NOT NULL,4 os_kernal VARCHAR(1000) not NULL,5 os_data VARCHAR(1000) PRIMARY KEY,6 )7

8 CREATE TABLE fdisk //fdisk表9 (10 f_date TIMESTAMP(14) NOT NULL,11 filesystem VARCHAR(1000) NOT NULL,12 rom VARCHAR(1000) not NULL,13 used VARCHAR(1000) not NULL,14 not_used VARCHAR(1000) not NULL,15 used_per VARCHAR(1000) NOT NULL,16 mount VARCHAR(1000) not NULL

17 )

所有对于表的操作都在一个py文件中,包括插入和查询操作

mysql_db.py

1 #coding=UTF-8

2 importMySQLdb3 import_mysql_exceptions4 createlinuxsql = """

5 CREATE TABLE linux6 (7 os_version VARCHAR(1000) NOT NULL,8 os_kernal VARCHAR(1000) not NULL,9 os_data VARCHAR(1000) PRIMARY KEY,10

11 )12 """

13 createfdisksql = """

14 CREATE TABLE fdisk15 (16 f_date TIMESTAMP(14) NOT NULL,17 filesystem VARCHAR(1000) NOT NULL,18 rom VARCHAR(1000) not NULL,19 used VARCHAR(1000) not NULL,20 not_used VARCHAR(1000) not NULL,21 used_per VARCHAR(1000) NOT NULL,22 mount VARCHAR(1000) not NULL23 )24 """

25 classmysql:26 def __init__(self):27 try:28 self.conn = MySQLdb.connect(host='192.168.179.129',user='root',passwd='ro',db='linux')29 self.cur =self.conn.cursor()30 except_mysql_exceptions.OperationalError,e:31 print '数据库无法连接'

32 def __del__(self):33 self.cur.close()34 self.conn.commit()35 self.conn.close()36 defselect(self):37 try:38 self.cur.execute("select * from linux")39 for each inself.cur.fetchall():40 printeach41 except_mysql_exceptions.ProgrammingError,e:42 self.cur.execute(createlinuxsql)43 defos_insert(self,version,kernal,data):44 try:45 self.cur.execute("insert into linux VALUES ('%s','%s','%s')"%(version,kernal,data))46 except_mysql_exceptions.ProgrammingError,e:47 self.cur.execute(createlinuxsql)48 self.cur.execute("insert into linux VALUES ('%s','%s','%s')"%(version,kernal,data))49 deffdisk_select(self):50 try:51 self.cur.execute("select * from fdisk")52 printself.cur.fetchall()53 except_mysql_exceptions.ProgrammingError,e:54 self.cur.execute(createfdisksql)55 deffdisk_insert(self,filesystemz,romz,usedz,nousedz,usedperz,mountz):56 try:57 self.cur.execute("insert into fdisk(filesystem,rom,used,not_used,used_per,mount) \58 VALUES ('%s','%s','%s','%s','%s','%s')"%(filesystemz,\59 romz,usedz,nousedz,usedperz,mountz))60 except_mysql_exceptions.ProgrammingError,e:61 self.cur.execute(createfdisksql)62 self.cur.execute("insert into fdisk(filesystem,rom,used,not_used,used_per,mount) \63 VALUES ('%s','%s','%s','%s','%s','%s')"%(filesystemz,\64 romz,usedz,nousedz,usedperz,mountz))

不用去手动建立表,只要数据库存在会自动建立表的

同时对以前的一些代码进行了更新,更新只填写变动

os_info.py:

1 #coding=UTF-8

2 importlinux_status3 importos_info_in4 from mysql_db importmysql5 classos_info:6 def __init__(self):7 #self.linux_stat=linux_status.linux_status()

8 self.os_infos_in=os_info_in.os_info_in()9 defos_info(self):10 self.linux_stat=linux_status.linux_status()11 self.linux_stat.os_version =self.os_infos_in.os_version()12 self.linux_stat.os_kernal =self.os_infos_in.os_kernel()13 self.linux_stat.os_date =self.os_infos_in.os_date()14 returnself.linux_stat15 defos_in_mysql(self):16 os_db=mysql()17 os_db.os_insert(self.os_infos_in.os_version(),self.os_infos_in.os_kernel(),self.os_infos_in.os_date())

linux_fdisk.py:

deffdisk_mysql(self):

self.fdisk_mysql=mysql()

i=0

j=1

while j==1:try:

self.fdisk_mysql.fdisk_insert(self.disk_info[i],self.disk_info[i+1],self.disk_info[i+2],\

self.disk_info[i+3],self.disk_info[i+4],self.disk_info[i+5])

i=i+6

exceptException,e:

j=0

四、结果展示:

mysql不支持显示中文,把linux改为英文就可以了(export LANG=en_US)

最后~

这个系列就先写到这吧~~等以后有啥新的想法会继续写的~~

欢迎大神加我QQ:707475486~备注:博客园就行~这样我有什么问题就可以很轻松的问了!大家一起进步~~~~~最近工作比较忙所以这一篇更得比较慢~

linux python开发环境sql数据迁移到mysql_运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库...相关推荐

  1. linux python开发环境sql数据迁移到mysql_linux环境下python怎样操作mysql数据库

    展开全部 linux环境下python怎样操作mysql数据库呢?方法如下: 首先在Linux环境下安装mysql-python 1.下载mysql-python 打开终端: cd /usr/loca ...

  2. vim配置python开发环境_Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)...

    众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑器界的大佬们,偌大的殿堂内几无立锥之地,然而在殿内的金漆雕龙宝座上,端坐着一 ...

  3. eclipse的python_eclipse中集成python开发环境

    转载:https://www.cnblogs.com/mywood/p/7272487.html Eclipse简介 Eclipse是java开发最常用的IDE,功能强大,可以在MAC和Windos上 ...

  4. 从零开始,教你如何安装、配置Python开发环境,Python入门安装教程,超级详细

    近日,我鼓起勇气从头开始正儿八经地配置一个更轻量.更趁手的 Python 开发环境.经过一番折腾,我比较顺利地在 Windows 10 上配置了一个比较满意的 Python 环境: 安装稳定版本的 P ...

  5. Eclipse python 开发环境配置

    Eclipse python 开发环境配置 由于项目需要用到脚本配置的东西,看了看Python能够做到基本上需要的工作,选择了 2.7.3稳定版本来进行测试开发. 转自: Eclipse+python ...

  6. eclipse配置python开发环境_eclipse怎样搭建Python开发环境

    eclipse通过pydev插件也是可以搭建出Python开发环境的.今天小编我就来给大家分享一下eclipse怎样搭建Python开发环境的经验哦. 工具/原料 电脑 eclipse Python ...

  7. VSCode配置Python开发环境!

    VsCode系列:VSCode配置Python开发环境! 今天博主跟大家聊一聊如何使用VsCode系列:VSCode配置Python开发环境!不喜勿喷,如有建议欢迎补充.讨论! 关于安装和汉化可以观看 ...

  8. docker配置python环境_PyCharm使用Docker镜像搭建Python开发环境

    在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装.本 ...

  9. linux pip3使用清华源_Linux实战016:Ubuntu搭建python开发环境

    我们在安装Ubuntu系统的时候会自带安装python2.7和python3.6版本的Python解释器,直接执行"ptyhon"默认运行的是python2.7,只有执行" ...

最新文章

  1. 编程方法学24:管理大型数据中的良好软件工程原理
  2. YY提交招股书赴美上市:连续三季盈利(转)
  3. 每天一个小异常——Excel的导出报类型转换异常
  4. 搜狗输入法回应误推地震信息;近亿人在钉钉上报健康情况;Rust 1.41.0发布 | 极客头条...
  5. linux基本命令(49)——at命令
  6. awk字符串匹配与传参
  7. 使用 RESTful 的方式开发 Web应用
  8. voice VLAN配置案例
  9. linux忘记密码怎么办
  10. vcpkg 详细介绍
  11. vs2019豆沙绿背景色及consolas字体设置
  12. IDEA类图标有小叉叉×
  13. 随机数字表法计算机分配,随机数表法.ppt
  14. Nginx Passenger 性能调优
  15. Rust的crate
  16. php webservice post,我用PHP写了个webservice,请问.net 如何通过POST方法使用wsdl里的方法...
  17. 没做过项目经理可以考pmp证书吗?普通人考PMP®有用吗?
  18. AUTOSAR——MBD应用之NM模块Stateflow实现
  19. 《五月集训》第十四天——栈
  20. PhpSpreadsheet 导出Excel图表 生成多列柱状图,自定义配色(原始图和自定义颜色图)

热门文章

  1. springMVC小记
  2. datetime类型保存的时间比实际时间少8小时
  3. Linux性能优化-磁盘RAID
  4. SpringBoot-Jsoup做java简单-爬虫
  5. 调节pycharm字体大_字体美化大师里的字体推荐
  6. nginx 调用dll_使用DLL中的资源
  7. rocketmq常用命令
  8. thinkphp5 memcached 安装、调用、链接
  9. Struts 2 入门
  10. 美国能源局投2100万美元加速光伏软成本下降