领取MOLI红包

Python实现动态生成系统数据库设计到Word文档

发布日期:2025-01-04 17:09    点击次数:81

背景 经常需要交付一些系统文档而且基本都是word的,其中又有系统数据库介绍模块, 看着数据库里的几百张表于是我开始怀疑人生, 所以咱手写一个 涉及知识 pymysql 操作数据库tkinter GUI图形库threading 线程queue 阻塞队列pandas 数据计算模型(DataFame)python-docx 操作word文档库 1、功能介绍 填写相关数据库信息后, 支持生成系统数据库设计到word文档节省写文档时间 支持按自定义SQL结果导出支持导出所有表结构信息支持导出数据库表清单支持测试连接 界面如下: 1.1 自定义SQL导出 在文本框内输入sql,然后勾选导出模式为 自定义SQL, 最后点击导出,生成word文档如下。 会将该sq的执行结果导出到word的表格 在自定义SQL模式时, 如果勾选了对所有表执行一遍, 并且配置了模版变量 #{tableName}. 则会遍历所有表执行一遍该模版SQL, 如下图。逻辑就是会先获取该数据库的所有表,然后遍历执行该模版sql并且替换模版变量#{tableName}, 最后将每次sql的执行结果导出到word的表格里面。 最终结果: 1.2 导出所有表结构 勾选导出模式为表结构,生成word文档如下。 逻辑是导出数据库的所有的表结构到word的表格。 这个通过自定义SQL模式也可实现,现在不过相当于内置了一些常用的模式。 1.3 导出数据库表清单 勾选导出模式为表清单,生成word文档如下, 就是将数据库包含哪些表生成一份清单导出。 2、 代码实现 代码说明: GuiTempldate: 将所有的图形按钮控件等都封装成该对象, 一个该对象代表一个窗口, 并且封装相关按钮事件MsgCenter: 消息队列, 每个GuiTempldate 内部都对应一个消息队列, 用作异步,解耦主流程事件防止阻塞只能串行执行事件, 打个比方因为一般窗口的按钮都是都是可以随便点的,不可能你点完这个按钮后触发了一些事件,然后你必须等这个事件执行完才能操作下一个按钮。 说白类似每次用一个新线程去异步执行, 用消息队列不过是线程池的效果。点击导出后实际执行的方法是 start_clac, 然后里面逻辑比较简单都是导出的相关业务逻辑 以上就是Python实现动态生成系统数据库设计到Word文档的详细内容,更多关于Python生成数据库设计到Word的资料请关注脚本之家其它相关文章!