怎么用python生成mysql数据库结构文档
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了怎么用python生成mysql数据库结构文档,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。因为项目原因需要编写数据
千家信息网最后更新 2026年11月01日怎么用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安全错误
数据库的锁怎样保障安全
互联网电商科技
互联网最新的科技有限公司
中资互联网科技
互联网科技金融
互联网金融 科技金融
无线互联网科技
广州紫鲸互联网科技
互联网科技视频素材
互联网科技公司需要的职位
互联网科技产品
华服互联网科技官网
新兴科技互联网创新大赛颁奖典礼
注册互联网科技公司经营范围大全
未来五年的互联网科技
互联网金融科技公司的优势
深圳互联网科技的发展
互联网科技实习生岗位
互联网风格科技公司名称
互联网硬科技公司
六子台科技互联网展会
互联网金融 科技创新
互联网科技英文翻译
互联网养老 桔豆科技
互联网科技生活的内容
蓝色互联网科技
浙江互联网科技研学营
千方科技属于互联网企业吗
企晟互联网信息科技有限公司
互联网公司高科技产品
互联网科技企业文化