本节课我们来开始数据工厂的正式核心内容了。关于数据工厂,我们其实有很多设计,无论是交互还是架构还是底层具体的实现算法等。
每样设计,都是会有它自己的作用。
整个平台 并不是简单的 带页面的 输入输出脚本 一个输入 输出脚本。
首先给大家介绍的一个设计就是,数据库组件。
【什么是数据库组件?】
就是一个专门存放数据库链接信息的模块,并支持被调用。包含数据层,交互层等设计和实现,封装底层复杂麻烦的sql库交互操作等。
【它有什么作用?】
可以分离出脚本中的数据库相关数据和代码,方便维护,类似微服务或独立中台的概念。也让后续的各个造数工具的开发变得更加简单,不用考虑复杂的数据库交互知识,大大减少开发成本和维护管理等成本。
【它的本体在哪?入口在哪?】
本体在 models -template - views.py 这个标准的MTV模式中处处都存在,和正常的一个模块没太大区别。
在菜单上会有这个入口,而且在任何工具内也可以有快速入口。
【它怎么调用?】
分为大工具调用和小工具调用。
因为大小工具的代码结构不同,所以调用数据库模块的方式也不同,但是总之在用户角度看到的话,都是一样的:
选择不同数据库后,相关代码会展示在页面上,让用户可以稍微自行修改也便于之后排查问题。
但大工具执行过程复杂还长,所以过程中的数据库数据也会跟着走很多步。而小工具只有一个执行脚本的方法,所以数据库数据也只走一步即可。
好了,设计到此就差不多了。我们开始实现吧~
首先是models.py层:
class DB_sql(models.Model): name = models.CharField(max_length=50,null=True,blank=True) sql_host = models.CharField('sql服务器地址', help_text='写个地址', max_length=100, null=True, blank=True) sql_port = models.CharField('sql服务器端口', help_text='端口', max_length=100, null=True, blank=True) sql_user = models.CharField('sql登陆用户名', help_text='', max_length=100, null=True, blank=True) sql_pwd = models.CharField('sql登陆密码', help_text='', max_length=100, null=True, blank=True) sql_db = models.CharField('sql数据库', help_text='数据库名', max_length=100, null=True, blank=True) sql_body = models.CharField('sql语句', help_text='多语句请$$$来分隔', max_length=1000, null=True, blank=True) def __str__(self): return str(self.name)
然后执行数据库同步语句:
执行成功后,我们的数据层就算搞定了。
我们下节课将继续研发这个模块欢迎继续关注和分享
请分享一下。