龙空技术网

Python数据字典生成工具详解

码出一个未来 147

前言:

目前我们对“mysql字典表”大约比较关切,兄弟们都需要知道一些“mysql字典表”的相关知识。那么小编同时在网上网罗了一些有关“mysql字典表””的相关知识,希望大家能喜欢,大家快快来学习一下吧!

Python还被大家称为“胶水语言”,它适用于网站、桌面应用开发、自动化脚本、复杂计算系统、科学计算、生命支持管理系统、物联网、游戏、机器人、自然语言处理等很多方面。对于职场人来说,Python可以帮助他们实现自动化办公提高工作效率。



而对于很多学生来说,Python可以帮助他们爬取各种资料。Python也是拥有的最热门的技能之一,并且根据“编程语言索引的流行度”,它也是世界上最受欢迎的编程语言。

与其他编程语言相比,Python提供的一些优势是:

1、与主要平台和操作系统兼容

2、许多开源框架和工具

3、可读且可维护的代码

4、强大的标准库

5、标准测试驱动的开发

如何用Python实现数据字典自动生成

实现思路:

1、配置数据源连接数据库;

2、查询数据库表结构;

3、将获取到的表结构按照固定格式排版;

4、写入到输出文件中;

5、查看生成的数据字典文件;

准备材料

1、python运行环境,推荐下载python2.7

2、安装python数据库类库MySQLdb


代码实现

# coding=gbk# coding:utf-8'''Mysql数据字典生成工具author 良date 2020.1.2实现思路:1、配置数据源连接数据库;2、查询数据库表结构;3、将获取到的表结构按照固定格式排版;4、写入到输出文件中;5、完毕;'''import MySQLdbimport sysreload(sys)sys.setdefaultencoding('gbk')def readDataFromDB(dbConn,dbName):data_list = []# 使用cursor()方法获取操作游标cursor = dbConn.cursor()# SQL 查询语句sql = " SELECT C.TABLE_NAME AS '表', " \" T.TABLE_COMMENT AS '表名', " \" C.COLUMN_NAME AS '字段名', " \" C.COLUMN_TYPE AS '数据类型', " \" C.IS_NULLABLE AS '允许为空', " \" C.COLUMN_COMMENT AS '字段说明', " \" C.COLUMN_KEY AS '键' " \" FROM " \" COLUMNS C " \" INNER JOIN TABLES T ON C.TABLE_SCHEMA = T.TABLE_SCHEMA " \" AND C.TABLE_NAME = T.TABLE_NAME " \" WHERE T.TABLE_SCHEMA = '%s' " %(dbName)print sqltry:# 执行SQL语句cursor.execute(sql)# 获取所有记录列表results = cursor.fetchall()for row in results:data_list.append(row)# print "fname=%s" % (tcode)except Exception as err:print("Error %s for execute sql: %s" % (err, sql))return data_listif __name__ == '__main__':# 读出filePath = 'dataDict.txt'# 配置数据库连接dbConn = MySQLdb.connect("127.0.0.1", "root", "root", "information_schema", charset='utf8' )# 配置数据库名称;dbName = "testdb"# 获取数据库表结构;data_list = readDataFromDB(dbConn,dbName);# 关闭数据库连接;dbConn.close();#print data_listencode_base = "gbk"# 数据字段排版tableCount = 0tableName = ""res = []for i in range(0, len(data_list)):tableName1 = data_list[i][0]if (tableName != tableName1):tableCount+=1tableName = tableName1print "---分割线---"print "表名称:", data_list[i][0]print "表注释:",data_list[i][1]print "字段名\t数据类型\t允许为空\t字段说明\t键"# 数据格式组装res.append("---表[%s]---\n" %(tableCount))res.append("表名称 %s \n" %tableName)res.append("表注释 %s\n"%(data_list[i][1]))res.append("字段名\t数据类型\t允许为空\t字段说明\t键\n")print "---表[%s]---",tableNameprint data_list[i][2],"\t",data_list[i][3],"\t",data_list[i][4],"\t",data_list[i][5],"\t",data_list[i][6]res.append("%s\t%s\t%s\t%s\t%s\n" %(data_list[i][2],data_list[i][3],data_list[i][4],data_list[i][5],data_list[i][6]))print "[",tableName,"]colunm",data_list[i][2]# 字符串拼接strf = ''.join(res)print strf# 创建一个文件,将内容写入文件;fo = open(filePath, "w")print "文件名: ", fo.namefo.write(strf)fo.close()

标签: #mysql字典表