热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享用python生成mysql数据库结构文档

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

最近因为项目原因需要编写数据库设计文档,但是由于数据表太多,手动编写耗费的时间太久,所以搞了一个简单的脚本快速生成数据库结构,保存到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,)      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,)      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数据库结构文档的文章就介绍到这了,更多相关python生成mysql结构文档内容请搜索<编程笔记>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<编程笔记>!

需要了解更多python教程分享用python生成mysql数据库结构文档,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 通过使用Sqoop导入工具,可以精确控制并高效地将表数据的特定子集导入到HDFS中。具体而言,可以通过在导入命令中添加WHERE子句来指定所需的数据范围,从而在数据库服务器上执行相应的SQL查询,并将查询结果高效地存储到HDFS中。这种方法不仅提高了数据导入的灵活性,还确保了数据的准确性和完整性。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
author-avatar
mqfcu123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有