基于Python的数据库设计文档生成方法、装置、设备及介质与流程

文档序号:31135345发布日期:2022-08-13 11:16阅读:70来源:国知局
基于python的数据库设计文档生成方法、装置、设备及介质
技术领域
:1.本技术涉及数据库的
技术领域
:,尤其是涉及一种基于python的数据库设计文档生成方法、装置、设备及介质。
背景技术
::2.数据库文档是对整个数据库设计说明的文档,数据库文档详细的描述每张表的字段、类型、长度、说明等信息,数据库文档便于项目的维护以及项目的二次开发,从而降低数据出现错误影响系统稳定的可能性。数据库文档生成技术需要随时在出现需求时一键生成数据库文档,减少设计人员及开发人员手动编写文档的繁琐工作。3.目前已有的数据库文档技术为开发人员通过代码生成数据库文档,而不懂代码的设计人员、管理人员及客户无法生成使用,并且需要开发人员根据当前的系统单独搭建集成,与系统的关联性较强,无法做到自适应不同的系统框架。技术实现要素:4.为了提高数据库文档生成的普适性,本技术提供一种基于python的数据库设计文档生成方法、装置、设备及介质。5.第一方面,本技术提供一种基于python的数据库设计文档生成方法,采用如下的技术方案:一种基于python的数据库设计文档生成方法,包括:获取待连接数据库的数据库类型,基于所述数据库类型python连接所述待连接数据库;获取已连接的待连接数据库的数据库信息,基于所述数据库信息封装成结构化数据;获取预设文档框架,基于所述预设文档框架和所述数据化结构生成文档模板;响应于数据库文档导出指令,基于所述结构化数据和所述文档模板生成数据库文档。6.通过采用上述技术方案,根据待连接数据库的数据库类型使用python方法连接当前待连接数据库,读取当前已连接的待连接数据库中的数据库信息,将数据库信息封装成便于调用的结构化数据,根据结构化数据的数据内容和固定的预设文档框架生成文档模板,当接收到数据库文档导出指令后,自动根据结构化数据和文档模板生成具有数据内容的数据库文档,其中文档模板具有文档框架的固定模式结构,但文档模板的内容格式根据结构化数据的数据内容自动调整,从而提高数据库文档生成的普适性。7.可选的,所述获取待连接数据库的数据库类型,基于所述数据库类型python连接所述待连接数据库包括:获取所述待连接数据库的属性值和属性名,基于所述属性名封装所述属性值;基于所述属性名和所述数据库类型调用封装的属性值。8.可选的,所述获取已连接的待连接数据库的数据库信息,基于所述数据库信息封装成结构化数据包括:获取基于当前所述数据库类型建立的所有所述待连接数据库;获取所述待连接数据库中的全部数据表;查询所述全部数据表的表名和表说明,基于所述表名和所述表说明生成第一表格;获取所述数据表的所有字段信息;查询所述所有字段信息的列名、默认值、列类型、列长、列备注,基于所述列名、默认值、列类型、列长、列备注生成第二表格;基于所述第一表格和所述第二表格生成结构化数据。9.可选的,所述基于所述预设文档框架和所述数据化结构生成文档模板包括:基于所述预设文档框架生成文档模板头和文档模板尾;基于所述预设文档框架、所述第一表格和所述第二表格生成文档模板数据表格;基于所述文档模板头、所述文档模板数据表格和所述文档模板尾生成文档模板。10.可选的,所述响应于数据库文档导出指令,基于所述结构化数据和所述文档模板生成数据库文档包括:将所述第一表格和所述第二表格中的数据填入所述文档模板的相应位置;将数据填入后的文档模板作为所述数据库文档。11.可选的,在所述响应于数据库文档导出指令之前,还包括:响应于用户的连接测试点击操作,获取用户输入的连接信息;判断所述用户输入的连接信息与预设的连接信息是否一致;若所述用户输入的连接信息与预设的连接信息一致,则生成包括允许生成所述数据库文档的提示信息;若所述用户输入的连接信息与预设的连接信息不一致,则生成包括禁止生成所述数据库文档的提示信息。12.第二方面,本技术提供一种基于python的数据库设计文档生成装置,采用如下的技术方案:一种基于python的数据库设计文档生成装置,包括:数据库连接模块,用于获取待连接数据库的数据库类型,基于所述数据库类型python连接所述待连接数据库;数据生成模块,用于获取已连接的待连接数据库的数据库信息,基于所述数据库信息封装成结构化数据;模板生成模块,用于获取预设文档框架,基于所述预设文档框架和所述数据化结构生成文档模板;文档生成模块,用于响应于数据库文档导出指令,基于所述结构化数据和所述文档模板生成数据库文档。13.通过采用上述技术方案,根据待连接数据库的数据库类型使用python方法连接当前待连接数据库,读取当前已连接的待连接数据库中的数据库信息,将数据库信息封装成便于调用的结构化数据,根据结构化数据的数据内容和固定的预设文档框架生成文档模板,当接收到数据库文档导出指令后,自动根据结构化数据和文档模板生成具有数据内容的数据库文档,其中文档模板具有文档框架的固定模式结构,但文档模板的内容格式根据结构化数据的数据内容自动调整,从而提高数据库文档生成的普适性。14.第三方面,本技术提供一种电子设备,采用如下的技术方案:一种电子设备,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面任一项所述的基于python的数据库设计文档生成方法的计算机程序。15.第四方面,本技术提供一种计算机可读存储介质,采用如下的技术方案:一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面任一项所述的基于python的数据库设计文档生成方法的计算机程序。附图说明16.图1是本技术实施例提供的一种基于python的数据库设计文档生成方法的流程示意图。17.图2是申请实施例提供的一种基于python的数据库设计文档生成装置的结构框图。18.图3是本技术实施例提供的电子设备的结构框图。具体实施方式19.以下结合附图对本技术作进一步详细说明。20.图1为本技术实施例提供的一种基于python的数据库设计文档生成方法的流程示意图。21.如图1所示,该方法主要流程描述如下(步骤s101~s104):步骤s101,获取待连接数据库的数据库类型,基于数据库类型python连接待连接数据库;在本实施例中,数据库的连接需要基于python方法进行连接,因此,待连接数据库的数据库类型需要为支持python方法连接的数据库。22.针对步骤s101,获取待连接数据库的属性值和属性名,基于属性名封装属性值;基于属性名和数据库类型调用封装的属性值。23.在本实施例中,属性值包括数据库的ip地址、端口号、用户名、密码、数据库名称、表空间和编码格式等,其中,当待连接数据库只有一个时,在获取当前待连接数据库的表空间时不需要输入表空间的空间名称,当待连接数据库为多个时,在获取当前待连接数据库的表空间是需要输入表空间的空间名称,当前表空间的空间名称与当前待连接数据库的数据库名称一致。24.具体的,在连接数据库时使用self.xxx=yyy.connect(属性值);self.cursor=self.postgresql.cursor()的连接句式,其中,使用self方法封装属性值,self用于将自身封装成一个实体类,self.xxx是指这个实体类中有名一个xxx的属性,属性名xxx可以为任意命名,当其他方法调用本方法的时候可以通过xxx的属性名获取到其中注入的属性值。=yyy.connect中的yyy是数据库的具体方法,须要根据数据库的具体方法来确定,不同的数据库自身规定的操作方法是不同的。25.例如,当连接oracle时,连接句式为self.oracle=cx_oracle.connect(属性值);self.cursor=self.oracle.cursor(),当连接mysql时,连接句式为self.mysql=pymysql.connect(属性值);self.cursor=self.mysql.cursor(),当连接postgresql时,连接句式为self.postgresql=psycopg2.connect(属性值);self.cursor=self.postgresql.cursor()。需要说明的是,连接不同数据库时xxx和yyy需要根据当前数据库自行设定,在此不做进一步举例说明,其中,属性值包括但不限于上述属性值,在进行封装时,需要根据当前数据库需求自行设置,在此不做具体限定。26.步骤s102,获取已连接的待连接数据库的数据库信息,基于数据库信息封装成结构化数据;针对步骤s102,获取基于当前数据库类型建立的所有待连接数据库;获取待连接数据库中的全部数据表;查询全部数据表的表名和表说明,基于表名和表说明生成第一表格;获取数据表的所有字段信息;查询所有字段信息的列名、默认值、列类型、列长、列备注,基于列名、默认值、列类型、列长、列备注生成第二表格;基于第一表格和第二表格生成结构化数据。27.在本实施例中,第一表格和第二表格用于存放由数据表中读取的数据,由数据表中读取的数据为用于生成数据库文档的关键数据,数据表存有大量的表数据,需要将关键数据从大量的表数据中摘取出来,集成为表格,即将表名和表说明集成为第一表格,将字段信息的列名、默认值、列类型、列长、列备注集成为第二表格。其中,表说明为当前数据表的设计说明或者创建说明等。28.步骤s103,获取预设文档框架,基于预设文档框架和数据化结构生成文档模板;针对步骤s103,基于预设文档框架生成文档模板头和文档模板尾;基于预设文档框架、第一表格和第二表格生成文档模板数据表格;基于文档模板头、文档模板数据表格和文档模板尾生成文档模板。29.在本实施例中,预设文档框架为固定的数据库文档生成框架,预设文档框架设置数据库文档的段落格式、语言类型、语言字体、段落格式、全局字体样式、文档标题、文档标题格式、表格格式、换页位置、一级标题格式、二级标题格式和段落文本格式等。在预设文档框架中包括至少一个一级标题、至少一个二级标题和至少一个段落文本,其中,一个一级标题包括至少一个二级标题,一个二级标题包括至少一个段落文本。30.例如,一级标题1包括二级标题1.1、二级标题1.2、和二级标题1.3,二级标题1.1包括一个段落文本,二级标题1.2包括两个段落文本,二级标题1.3包括一个段落文本,一级标题2包括二级标题2.1、二级标题2.2和二级标题2.3,二级标题2.1包括一个段落文本,二级标题2.2包括两个段落文本,二级标题2.3包括三个段落文本等,在此不做进一步举例说明。31.在本实施例中,不同的一级标题的一级标题格式、不同的二级标题的二级标题格式和不同的段落文本的段落文本格式可以不同,例如,一级标题1的一级标题格式为居中,二级标题1.1的二级标题格式为居左,其段落文本的段落文本格式为居左,二级标题1.2的二级标题格式为居右,其段落文本的段落文本格式为居右等,具体的一级标题格式、二级标题格式和段落文本格式需要根据需求自行设置,在此不做具体限定。32.在本实施例中,文档模板头和文档模板尾的格式为固定的格式,文档模板数据表格在创建时需要根据第一表格中的表名、表说明添加二级标题,确定二级标题的数量和序号,根据第二表格中的字段信息确定数据表格的行数、列数、样式、表头数据等。33.在本实施例中,预设文档框架中包含有数据获取方法代码,数据获取方法的代码为self.documenttable()方法,使用该方法将获取第一表格和第二表格中的数据。34.步骤s104,响应于数据库文档导出指令,基于结构化数据和文档模板生成数据库文档。35.在本实施例中,文档的导出指令包括直接在main代码页面运行main代码;将该方法包装为工具包集成到软件系统页面中,在系统页面上设置导出按钮,给导出按钮添加点击事件,通过导出按钮和点击事件运行main代码;将该方法包装为exe程序使用python生成导出页面,在导出页面上设置导出按钮,给导出按钮添加点击事件,通过导出按钮和点击事件运行main代码。36.针对步骤s104,将第一表格和第二表格中的数据填入文档模板的相应位置;将数据填入后的文档模板作为数据库文档。37.在本实施例中,在接收到文档导出指令后,循环查询第一表格中数据和第二表格中的数据,并将查询到的数据填入到文档模板的相应位置,将填入数据的文档模板作为数据库文档进行打印导出。需要说明的是,在根据第一表格和第二表格中的数据生成文档模板后不需要将第一表格和第二表格中的数据填入文档模板内,需要在接收到文档导出指令后将将第一表格和第二表格中的数据填入文档模板内,从而减小在第一表格和第二表格的数据产生变化后产生大量无用的数据库文档,减小对数据资源的浪费。38.在步骤s104之后,响应于用户的连接测试点击操作,获取用户输入的连接信息;判断用户输入的连接信息与预设的连接信息是否一致;若用户输入的连接信息与预设的连接信息一致,则生成包括允许生成数据库文档的提示信息;若用户输入的连接信息与预设的连接信息不一致,则生成包括禁止生成数据库文档的提示信息。39.在本实施例中,连接测试设置于exe程序的导出页面上,导出页面包括项目数据库连接名的输入框、数据库类型的选择框、主机名或者数据库ip地址的输入框、数据库端口号的输入框、数据库的数据库名称的输入框、表空间的名称的输入框、用户名的输入框和密码的输入框。用户需要根据需要向上述的输入框中输入相应的数据,在输入数据之后点击连接测试按钮。在接收到用户的连接测试指令后,获取用户输入的数据,判断用户输入的数据是否全部正确,当用户输入的数据全部正确时,生成允许生成数据库文档的提示信息,从而提示用户可以导出数据库文档,当用户输入的数据存在一项错误数据时,生成禁止生成数据库文档的提示信息,并且对错误数据进行提示,其中,错误数据的提示方式包括清除错误数据对应的输入框中的内容、在错误数据对应的输入框后添件亮色提示标识、设置带有错误数据的提示弹窗等任一项或者多项的组合等,在此不做具体限定。40.在本实施例中,exe程序的导出页面上还设置有取消按钮,当误触exe程序或无法输入正确的数据时,通过点击取消按钮即可退出导出页面。41.图2为申请实施例提供的一种基于python的数据库设计文档生成装置200的结构框图。42.如图2所示,基于python的数据库设计文档生成装置200主要包括:数据库连接模块201,用于获取待连接数据库的数据库类型,基于数据库类型python连接待连接数据库;数据生成模块202,用于获取已连接的待连接数据库的数据库信息,基于数据库信息封装成结构化数据;模板生成模块203,用于获取预设文档框架,基于预设文档框架和数据化结构生成文档模板;文档生成模块204,用于响应于数据库文档导出指令,基于结构化数据和文档模板生成数据库文档。43.作为本实施例的一种可选实施方式,数据库连接模块201具体用于获取待连接数据库的属性值和属性名,基于属性名封装属性值;基于属性名和数据库类型调用封装的属性值。44.作为本实施例的一种可选实施方式,数据生成模块202具体用于获取基于当前数据库类型建立的所有待连接数据库;获取待连接数据库中的全部数据表;查询全部数据表的表名和表说明,基于表名和表说明生成第一表格;获取数据表的所有字段信息;查询所有字段信息的列名、默认值、列类型、列长、列备注,基于列名、默认值、列类型、列长、列备注生成第二表格;基于第一表格和第二表格生成结构化数据。45.作为本实施例的一种可选实施方式,模板生成模块203具体用于基于预设文档框架生成文档模板头和文档模板尾;基于预设文档框架、第一表格和第二表格生成文档模板数据表格;基于文档模板头、文档模板数据表格和文档模板尾生成文档模板。46.作为本实施例的一种可选实施方式,文档生成模块204具体用于将第一表格和第二表格中的数据填入文档模板的相应位置;将数据填入后的文档模板作为数据库文档。47.作为本实施例的一种可选实施方式,该基于python的数据库设计文档生成装置200,还包括:操作响应模块,用于响应于用户的连接测试点击操作,获取用户输入的连接信息;信息判断模块,用于判断用户输入的连接信息与预设的连接信息是否一致;第一提示模块,用于生成包括允许生成数据库文档的提示信息;第二提示模块,用于生成包括禁止生成数据库文档的提示信息。48.在一个例子中,以上任一装置中的模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(applicationspecificintegratedcircuit,asic),或,一个或多个数字信号处理器(digitalsignalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga),或这些集成电路形式中至少两种的组合。49.再如,当装置中的模块可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,cpu)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。50.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。51.图3为本技术实施例提供的电子设备300的结构框图。52.如图3所示,电子设备300包括处理器301和存储器302,还可以进一步包括信息输入/信息输出(i/o)接口303、通信组件304中的一种或多种以及通信总线305。53.其中,处理器301用于控制电子设备300的整体操作,以完成上述的基于python的数据库设计文档生成方法的全部或部分步骤;存储器302用于存储各种类型的数据以支持在电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,sram)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、可编程只读存储器(programmableread-onlymemory,prom)、只读存储器(read-onlymemory,rom)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。54.i/o接口303为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件304用于电子设备300与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件104可以包括:wi-fi部件,蓝牙部件,nfc部件。55.电子设备300可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的基于python的数据库设计文档生成方法。56.通信总线305可包括一通路,在上述组件之间传送信息。通信总线305可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。通信总线305可以分为地址总线、数据总线、控制总线等。57.电子设备300可以包括但不限于移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端,还可以为服务器等。58.本技术还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的基于python的数据库设计文档生成方法的步骤。59.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。60.术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。61.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1