怎么用python生成mysql数据库结构文档
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍了怎么用python生成mysql数据库结构文档,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。因为项目原因需要编写数据
千家信息网最后更新 2025年11月08日怎么用python生成mysql数据库结构文档
这篇文章主要介绍了怎么用python生成mysql数据库结构文档,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
因为项目原因需要编写数据库设计文档,但是由于数据表太多,手动编写耗费的时间太久,所以搞了一个简单的脚本快速生成数据库结构,保存到word文档中。
安装pymysql和document
pip install pymysqlpip install document
脚本
# -*- coding: utf-8 -*-import pymysqlfrom docx import Documentfrom docx.shared import Ptfrom docx.oxml.ns import qndb = pymysql.connect(host='127.0.0.1', #数据库服务器IP port=3306, user='root', passwd='123456', db='test_db') #数据库名称)#根据表名查询对应的字段相关信息def query(tableName): #打开数据库连接 cur = db.cursor() sql = "select b.COLUMN_NAME,b.COLUMN_TYPE,b.COLUMN_COMMENT from (select * from information_schema.`TABLES` where TABLE_SCHEMA='test_db') a right join(select * from information_schema.`COLUMNS` where TABLE_SCHEMA='test_db_test') b on a.TABLE_NAME = b.TABLE_NAME where a.TABLE_NAME='" + tableName+"'" cur.execute(sql) data = cur.fetchall() cur.close return data#查询当前库下面所有的表名,表名:tableName;表名+注释(用于填充至word文档):concat(TABLE_NAME,'(',TABLE_COMMENT,')')def queryTableName(): cur = db.cursor() sql = "select TABLE_NAME,concat(TABLE_NAME,'(',TABLE_COMMENT,')') from information_schema.`TABLES` where TABLE_SCHEMA='test_db_test'" cur.execute(sql) data = cur.fetchall() return data#将每个表生成word结构,输出到word文档def generateWord(singleTableData,document,tableName): p=document.add_paragraph() p.paragraph_format.line_spacing=1.5 #设置该段落 行间距为 1.5倍 p.paragraph_format.space_after=Pt(0) #设置段落 段后 0 磅 #document.add_paragraph(tableName,style='ListBullet') r=p.add_run('\n'+tableName) r.font.name=u'宋体' r.font.size=Pt(12) table = document.add_table(rows=len(singleTableData)+1, cols=3,style='Table Grid') table.style.font.size=Pt(11) table.style.font.name=u'Calibri' #设置表头样式 #这里只生成了三个表头,可通过实际需求进行修改 for i in ((0,'NAME'),(1,'TYPE'),(2,'COMMENT')): run = table.cell(0,i[0]).paragraphs[0].add_run(i[1]) run.font.name = 'Calibri' run.font.size = Pt(11) r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), '宋体') for i in range(len(singleTableData)): #设置表格内数据的样式 for j in range(len(singleTableData[i])): run = table.cell(i+1,j).paragraphs[0].add_run(singleTableData[i][j]) run.font.name = 'Calibri' run.font.size = Pt(11) r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), '宋体') #table.cell(i+1, 0).text=singleTableData[i][1] #table.cell(i+1, 1).text=singleTableData[i][2] #table.cell(i+1, 2).text=singleTableData[i][3] if __name__ == '__main__': #定义一个document document = Document() #设置字体默认样式 document.styles['Normal'].font.name = u'宋体' document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') #获取当前库下所有的表名信息和表注释信息 tableList = queryTableName() #循环查询数据库,获取表字段详细信息,并调用generateWord,生成word数据 #由于时间匆忙,我这边选择的是直接查询数据库,执行了100多次查询,可以进行优化,查询出所有的表结构,在代码里面将每个表结构进行拆分 for singleTableName in tableList: data = query(singleTableName[0]) generateWord(data,document,singleTableName[1]) #保存至文档 document.save('数据库设计.docx')生成的word文档预览
感谢你能够认真阅读完这篇文章,希望小编分享的"怎么用python生成mysql数据库结构文档"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数据
数据库
文档
生成
结构
查询
宋体
信息
篇文章
样式
字段
时间
段落
注释
脚本
表头
设计
匆忙
三个
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
各行业app软件开发文章
apple登录服务器超时
数据库三个表怎么连到一起
天津淘梦银汉天河网络技术
R语言连接数据库的包
软件开发调研内容
贵州软件开发定制平台
管家婆辉煌部服务器不能登陆
监狱风云服务器
国产三个数据库管理系统
文件型数据源和数据库型数据源
专业机房与服务器设计
软件开发前期任务
数据集与数据库的区别
截图调色软件开发
国产数据库软件前十排名
不灵姐灵月服务器生存1
山西标准软件开发费用
数据库获取内容
武警 网络安全
2021年网络安全培训内容
软件开发企业成本太低了
网络安全基础设计
山东网络技术专业可考什么大学
互联网科技通信公司是做什么的
光遇显示服务器内部出问题
数据库系统阶段冗余性
数据库查看视图用什么语句
数据库完整性与安全性实验
网络安全应注意哪一点