千家信息网

怎么用python生成mysql数据库结构文档

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍了怎么用python生成mysql数据库结构文档,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。因为项目原因需要编写数据
千家信息网最后更新 2024年09月22日怎么用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安全错误 数据库的锁怎样保障安全 北邮网络安全与密码学 为什么配置本地dns服务器 附魔服务器 网络安全的应用方式 做好网络安全工作的启示 网络安全周是哪个月 网络安全空间竞赛单兵渗透 计算机软件开发现状绪论 清水手机软件开发 物理服务器管理口协议 接口数据存入数据库 软件开发工作内容记录报告 适合大型软件开发的模型 河北智慧人口管理系统软件开发 创成利网络技术有限公司天津 贵州通讯软件开发服务参考价格 原神忘记哪个服务器 改了数据库也需要重启项目 淘宝网络安全漏洞维护人员 怎样知道时间是服务器生成的 中国联通软件开发工程师 徐汇区什么是软件开发服务保障 网络安全靠人民的作文 织梦 数据库删除部分文章 数据库数据加密实现 网络安全发展趋势是异构防护 csgo连不上安全服务器 毛晶玥网络安全课视频 潍坊 软件开发企业 软件开发版本号命名规范
0