python构建数据库,python 获取数据库表结构
大家好,本篇文章主要讲的是用大蟒生成关系型数据库数据库结构文档,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
最近因为项目原因需要编写数据库设计文档,但是由于数据表太多,手动编写耗费的时间太久,所以搞了一个简单的脚本快速生成数据库结构,保存到单词文档中。
安装已安装和文件
点安装已安装
点安装文档
脚本
# -*-编码: utf-8 -*-
导入已安装
从文档导入文档
从docx.shared导入铂
从docx.oxml.ns导入每晚一次
db=pymysql。连接(host= 127。0 .0 .1 ,#数据库服务器互联网协议(互联网协议)
端口=3306,
user=root ,
passwd=123456 ,
db=test_db) #数据库名称)
#根据表名查询对应的字段相关信息
定义查询(表名):
#打开数据库连接
cur=db.cursor()
sql=select b.COLUMN_NAME,b.COLUMN_TYPE,b . COLUMN _ COMMENT from(select * from information _ SCHEMA。` tables 其中TABLE _ SCHEMA= test _ db )a . TABLE _ NAME=b . TABLE _ NAME其中a . TABLE _ NAME= tableName
当前执行(sql)
data=cur.fetchall()
当前关闭
返回数据
#查询当前库下面所有的表名,表名:表名表名注释(用于填充至单词文档):concat(TABLE_NAME,(,TABLE_COMMENT,))
def queryTableName():
cur=db.cursor()
sql=select TABLE_NAME,concat(TABLE_NAME,(,TABLE_COMMENT,))from information_schema其中表模式=测试数据库测试
当前执行(sql)
data=cur.fetchall()
返回数据
#将每个表生成单词结构,输出到单词文档
def生成word(singleTableData,document,tableName):
p=document.add_paragraph()
p。段落格式。行距=1.5 #设置该段落行间距为1.5倍
p。段落格式。space _ after=Pt(0)#设置段落段后0 磅
#文档。add _ paragraph(tableName,style=ListBullet )
r=p.add_run(\n tableName)
r.font.name=u 宋体
r.font.size=Pt(12)
表格=文档。add _ Table(rows=len(singleTableData)1,cols=3,style=表格网格)
table.style.font.size=Pt(11)
桌子。风格。字体。name=u calibri
#设置表头样式
#这里只生成了三个表头,可通过实际需求进行修改
对于我在((0,’名称)、(1,类型)、(2,注释)):
run=table.cell(0,i[0]).段落[0]。添加_运行(我[1])
run.font.name=Calibri
run.font.size=Pt(11)
r=运行。_元素
r。RPR。r字体。设置(qn( w :东亚),宋体)
对于范围内的I(len(singleTableData)):
#设置表格内数据的样式
对于范围内的j(len(singleTableData[I])):
run=table.cell(i 1,j).段落[0]。add_run(singleTableData[i][j])
run.font.name=Calibri
run.font.size=Pt(11)
r=运行。_元素
r。RPR。r字体。设置(qn( w :东亚),宋体)
#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__:
#定义一个文件
文档=文档()
#设置字体默认样式
文档。样式[正常]。字体。name=u 宋体
document.styles[Normal]._ element。RPR。r字体。设置(qn( w :东亚),u 宋体)
#获取当前库下所有的表名信息和表注释信息
tableList=queryTableName()
#循环查询数据库,获取表字段详细信息,并调用generateWord,生成单词数据
#由于时间匆忙,我这边选择的是直接查询数据库,执行了100多次查询,可以进行优化,查询出所有的表结构,在代码里面将每个表结构进行拆分
对于表列表:中的singleTableName
data=query(singleTableName[0])
generateWord(数据,文档,singleTableName[1])
#保存到文档
Document.save(数据库设计. docx )
生成的word文档预览
这就是这篇关于用python生成mysql数据库结构文档的文章。关于用python生成mysql结构文档的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。