Diagrams 是一个基于 Python 绘制云零碎架构的模块,它可能通过非常简单的形容就能可视化架构,并反对以下 6 个云产品的图标:
AWS、Azure、GCP、K8s、阿里云 和 Oracle 云
基于 Diagrams 提供的节点,你只须要指定一个云产品(实际上选哪个都一样,咱们只须要那个产品相应的图标,你能够选一个本人感觉难看的产品),应用其外部自带的云产品的图标,就能简略绘制基于某云产品图标的架构图,比方上面的代码,绘制了一个简略的基于数据库集群的网络服务架构:
十分非常适合用来做毕业论文的架构图绘制,强烈推荐。
1. 筹备
开始之前,你要确保 Python 和 pip 曾经胜利装置在电脑上噢,如果没有,进行装置。如果你用 Python 的目标是数据分析,能够间接装置 Anaconda。
Windows 环境下关上 Cmd(开始—运行—CMD),苹果零碎环境下请关上 Terminal(command+ 空格输出 Terminal),筹备开始输出命令装置依赖。
当然,我更举荐大家用 VSCode 编辑器,把本文代码 Copy 下来,在编辑器下方的终端运行命令装置依赖模块,多难受的一件事啊。
在终端输出以下命令装置咱们所须要的依赖模块:
pip install diagrams
看到 Successfully installed xxx 则阐明装置胜利。
Diagrams 应用了 graphviz 作为渲染工具,因而为了顺利应用 Diagrams,还须要下载 graphviz:
https://www.graphviz.org/down…
macOS 用户能够间接 brew 装置:
brew install graphviz
2. 根本应用与例子
2.1 初始化与导出
应用 Diagram 类初始化一个绘图上下文,这个类接管到的第一个参数将会成为架构图的文件名,而一当代码运行结束,它将会以该文件名保留(空格会被下划线所代替):
此外,它还能够抉择导出的文件格式,在 Diagram 类里减少 outformat 参数,也能够不以第一个参数为文件保留名称,减少 filename 参数指定名称即可:
with Diagram("Simple Diagram", outformat="jpg", filename="my_diagram")
2.2 节点类型
因为节点类型比拟多,咱们无奈一一展现进去,所有类型的节点里都能够在官网文档里找到,比方:
阿里云:https://diagrams.mingrammer.c…
K8S:https://diagrams.mingrammer.c…
AWS:https://diagrams.mingrammer.c…
接下来以 AWS 为例子,解说几个根本的数据流例子:
几个操作符:
示意从左到右的数据流 \
<< 示意从右到左的数据流 \
- 示意没有箭头的数据流
还能够用变量赋值的模式简化代码:
能够看到这里箭头的方向变了,这是因为 Diagram 加了 direction 参数,TB 示意数据流向 top to bottm, 即从上到下,可选的其余参数还有:LR(左至右)、BT(底至上)、RL(右至左)。
下面的代码还能够用数组的模式进一步简化:
2.3 集群块
应用 Cluster 类 并用 with 以上下文的模式,你能够十分不便地生成一个集群块:
而且还能够做得相当简单:
这里代码很简略,然而比拟长,后续还有一个比拟重要的例子,这里就不展现了,有趣味的话能够点击最下方浏览原文进行查看。
2.4 自定义线的色彩与属性
应用 Edge 函数,你能够自定义线的色彩与属性以及备注,比方:
Edge(color="firebrick", style="dashed", label="test")
# 应用火砖色,线的类型为虚线,备注为 test
上面是一个比较复杂的例子,然而你如果认真浏览了,会发现它其实很简略:
如果你喜爱明天的 Python 教程,请继续关我,如果对你有帮忙,麻烦在上面点一个赞 / 关注 ,有任何问题都能够留言,咱们会急躁解答的!