怎么用python生成mysql数据库结构文档
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍了怎么用python生成mysql数据库结构文档,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。因为项目原因需要编写数据
千家信息网最后更新 2025年01月21日怎么用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系统软件开发方案费用
常州服务器工控机品牌
最高检察院网络安全保护工作
微表情和肢体语言数据库
安徽通用软件开发市场报价
日期在数据库表里的约束
淘宝服务器崩溃如何解决
洛杉矶云服务器
数据库的文件夹怎么打开
网络技术维护人员
衡水有容软件开发有限公司
数据库中的对象删除
新疆区域哪个国产数据库做的好
网络安全知识通报
中专学软件开发有前途吗
网络安全的环境是什么
校园网络安全工作责任制度
家庭装修软件开发
服务器产生的高温利用取暖
百里半网络技术靠谱吗
网络安全教育征文素材
部队网络安全案例及分析
一亩田网络技术
图书馆表数据库
数据库table什么意思
个人有个服务器怎么去盈利
临沂天马网络技术有限公司
ip音响服务器ip和终端ip
保靖网络安全法