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

最近因为项目原因需要编写数据库设计文档,但是由于数据表太多,手动编写耗费的时间太久,所以搞了一个简单的脚本快速生成数据库结构,保存到word文档中。

安装pymysql和document

pip install pymysql
pip install document

脚本

# -*- coding: utf-8 -*-
import pymysql
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn

db = 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数据库结构文档的文章就介绍到这了,更多相关python生成mysql结构文档内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python读取word文档,插入mysql数据库的示例代码

    表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding:utf-8 -*- # 读取docx中的文本代码示例 import docx import pymysql import re import os # 创建数据库链接 conn = pymysql.connect( host='rm-bp1vu5d84dg12c6d59o.mysql.rds.ali

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

    最近因为项目原因需要编写数据库设计文档,但是由于数据表太多,手动编写耗费的时间太久,所以搞了一个简单的脚本快速生成数据库结构,保存到word文档中. 安装pymysql和document pip install pymysql pip install document 脚本 # -*- coding: utf-8 -*- import pymysql from docx import Document from docx.shared import Pt from docx.oxml.ns im

  • java如何实现自动生成数据库设计文档

    目录 前言 实现步骤 main方法类全部代码 表qrtz_blob_triggers 表qrtz_calendars 表qrtz_cron_triggers 前言 以前我们还需要手写数据库设计文档.现在可以通过引入screw核心包来实现Java 数据库文档一键生成.话不多说.直接上代码演示. 支持的数据库列表: MySQL MariaDB TIDB Oracle SqlServer PostgreSQL 这些主流的数据库都支持的. 实现步骤 引入 pom.xml核心配置screw包 <depen

  • Python从MySQL数据库中面抽取试题,生成试卷

    一.背景 本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样. 二.准备工作 1.安装Python3 下载地址:https://www.python.org/downloads/windows/ 2.安装库 pip install python-docx==0.8.10 pip install PyMySQL==1.0.2 3.试题库.xlsx 开发程序前需要先收集试题,本文是将试题收集存放MySQL数据库中,格式如下: 选择题数据库截图: 填空题/解答

  • Python实现mysql数据库中的SQL文件生成和导入

    目录 1.将mysql数据导出到SQL文件中(数据库存在的情况) 2.将现有的sql文件数据导入到数据库中(前提数据库存在) 3.利用Navicat导出SQL文件和导入SQL文件 1)从数据库导出SQL文件 2)导入SQL文件到数据库 1.将mysql数据导出到SQL文件中(数据库存在的情况) 主要需要修改数据库的相关信息,端口号.用户名.密码等 其中数据库得存在,不然会报错 : #!/usr/bin/env python # -*- coding: utf-8 -*- # @descripti

  • Python自动化办公之Word文档的创建与生成

    目录 保存生成 word 生成标题 生成段落 添加图片 添加表格 分页 上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片.从今天开始将学习如何通过 python 脚本来自动生成一个 word 文档. 保存生成 word 在学习如何生成一个 word 文档之前,我们来看看如何保存生成 word 文件,因为马上就会用到. 使用方法: document_obj.save(文件地址) ---> /home/demo.docx

  • Python 使用tf-idf算法计算文档关键字权重并生成词云的方法

    Python 使用tf-idf算法计算文档关键字权重,并生成词云 1. 根据tf-idf计算一个文档的关键词或者短语: 代码如下: 注意需要安装pip install sklean: from re import split from jieba.posseg import dt from sklearn.feature_extraction.text import TfidfVectorizer from collections import Counter from time import

  • Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】

    本文实例讲述了Python操作MySQL数据库的两种方式.分享给大家供大家参考,具体如下: 第一种 使用pymysql 代码如下: import pymysql #打开数据库连接 db=pymysql.connect(host='1.1.1.1',port=3306,user='root',passwd='123123',db='test',charset='utf8') cursor=db.cursor()#使用cursor()方法获取操作游标 sql = "select * from tes

  • Python操作MySQL数据库实例详解【安装、连接、增删改查等】

    本文实例讲述了Python操作MySQL数据库.分享给大家供大家参考,具体如下: 1.安装 通过Python连接MySQL数据库有很多库,这里使用官方推荐的MySQL Connector/Python库,其官网为:https://dev.mysql.com/doc/connector-python/en/. 通过pip命令安装: pip install mysql-connector-python 默认安装的是最新的版本,我安装的是8.0.17,对应MySQL的8.0版本.MySQL统一了其相关

  • python编写暴力破解zip文档程序的实例讲解

    编写暴力破解Zip文件要从学习zipfile库的使用方法入手,首先打开Python解释器,用help('zipfile')命令来了解这个库并重点看一下ZipFile类中的extractall()这个方法 ZipFile extractall() 让我们来写一个脚本测试一下Zip文件库的用法,首先创建一个有密码的压缩文件,这里设置密码为awd,文件名为evil.zip,要解压这个zip文件,实例化一个新的ZipFile类,使用extractall()方法,在可选参数pwd上填上密码 运行后你会发现

  • 使用python将mysql数据库的数据转换为json数据的方法

    由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问Mysql数据库及读取获取数据(前提需要安装MySQLdb第三方库哦),以及如何将数据转换为json数据,最后保存成文件输出. 代码如下:注释比较详细了. # coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysq

随机推荐