Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1839476
  • 博文数量: 117
  • 博客积分: 2559
  • 博客等级: 少校
  • 技术积分: 4385
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-13 20:08
个人简介

作为初学者,要想取得进步,成为高手,首先应该了解自己的不足之处.

文章分类

全部博文(117)

文章存档

2014年(1)

2013年(25)

2012年(13)

2011年(77)

2010年(1)

分类: Python/Ruby

2011-10-22 00:13:45

本帖利用一个实例,简单的介绍一下python的cgi编程mysql数据库操作
1,先把数据库服务器的信息录入到表内,表格式如下.
2,利用python的cgi脚本从表中按照规则读取数据
3,用web界面展示

建立一个表,语句如下(字段解释参照cgi部分):
  1. CREATE TABLE `host_db` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `site` char(10) NOT NULL,
  4.   `hostname` char(30) NOT NULL,
  5.   `ip_eth0` varchar(50) NOT NULL,
  6.   `ip_eth1` varchar(50) NOT NULL,
  7.   `db_type` varchar(45) NOT NULL,
  8.   `db_version` varchar(45) NOT NULL,
  9.   `db_port` varchar(45) NOT NULL,
  10.   `structure` varchar(45) NOT NULL,
  11.   `cluster` varchar(45) DEFAULT NULL,
  12.   `role` varchar(45) DEFAULT NULL,
  13.   `vip` varchar(45) DEFAULT NULL,
  14.   `developer` varchar(255) DEFAULT NULL,
  15.   `work` varchar(255) DEFAULT NULL,
  16.   `affect` varchar(255) DEFAULT NULL,
  17.   `mark` text,
  18.   PRIMARY KEY (`id`)
  19. ) ENGINE=InnoDB
web的cgi脚本如下:
  1. #!/usr/bin/python
  2. #coding=utf-8

  3. import sys

  4. reload(sys)
  5. sys.setdefaultencoding('utf-8')
  6. #这两个的作用是设置python默认编码为utf8
  7. import MySQLdb
  8. import cgi

  9. print "Content-Type: text/html charset=utf-8 \n"
  10. print "数据库列表"
  11. print ""
  12. print "

    数据库列表

    "

  13. print "
      "
    • print '''

    • 请选择要查询的类型:


    • 数据库XXX
    • 数据库XXX
    • 数据库XXX
    • 数据库XXX

    • 请出入要查询的主机名:




    • '''
    • #下面的函数,提供了主要的检索功能,其中修改了部分名字,大家可以参考一下思路.感兴趣的可以单独联系.
    • def SEL_HOST(HN='') :
    •     if HN == 'host_x':
    •         SQL_HOST = 'SELECT * FROM host_db'
    •         NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db'
    •     elif HN == 'host_x':
    •         SQL_HOST = 'SELECT * FROM host_db WHERE structure="XX" ORDER BY cluster'
    •         NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db WHERE structure="XX"'
    •     elif HN == 'host_x':
    •         SQL_HOST = 'SELECT * FROM host_db WHERE structure="XX" ORDER BY cluster'
    •         NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db WHERE structure="XX"'
    •     elif HN == 'host_x':
    •         SQL_HOST = 'SELECT * FROM host_db WHERE structure="XX" ORDER BY cluster'
    •         NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db WHERE structure="XX"'
    •     else:
    •         SQL_HOST = 'SELECT * FROM host_db WHERE hostname LIKE "%%%s%%"' % (HN)
    •     if 'NUM_HOST' in dir():
    •         CUR.execute(NUM_HOST)
    •         print "

      所查询的主机数量: %s

      "
      % CUR.fetchone()
    •     CUR.execute(SQL_HOST)
    •     for data in CUR.fetchall():
    •         print ""
    •         print "
    • "%(data[0])
    •         print "
    • "%(data[1])
    •         print "
    • "%(data[2])
    •         print "
    • "%(data[3])
    •         print "
    • "%(data[4])
    •         print "
    • "%(data[5])
    •         print "
    • "%(data[6])
    •         print "
    • "%(data[7])
    •         print "
    • "%(data[8])
    •         print "
    • "%(data[9])
    •         print "
    • "%(data[10])
    •         print "
    • "%(data[11])
    •         print "
    • "%(data[12])
    •         print "
    • "%(data[13])
    •         print "
    • "%(data[14])
    •         print "
    • "%(data[15])
    •         print "
    • 实例id %s
      机房 %s
      主机名 %s
      内网ip %s
      外网ip %s
      数据库类型 %s
      数据库版本 %s
      数据库端口 %s
      架构 %s
      架构名 %s
      角色 %s
      vip %s
      开发负责人 %s
      应用 %s
      影响 %s
      备注 %s
      "

    •         print "

      "

    • def main() :
    •     form = cgi.FieldStorage()
    • # if form.has_key('hostname'):
    •     hostname = form['hostname'].value

    • if __name__ == '__main__':
    •     CON = MySQLdb.connect(host='192.168.250.253',user='dba_work',passwd='123456',db='dba_work',charset='utf8',use_unicode = True)
    •     CUR = CON.cursor()
    •     form = cgi.FieldStorage()
    •     if form.has_key('hostname'):
    •         hostname = form['hostname'].value
    •         SEL_HOST(hostname)
    •     elif form.has_key('host_list'):
    •         host_all = form['host_list'].value
    •         SEL_HOST(host_all)
    •     else:
    •         pass
    •     print "
    "

  14.     print " "
  15.     CUR.close()



阅读(8396) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~