博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python也能画架构图
阅读量:4211 次
发布时间:2019-05-26

本文共 1831 字,大约阅读时间需要 6 分钟。

今天无意中发现了一个画架构图的东西,还是python的,那我们就稍微学习一下。这个python库的名字叫做diagrams,安装也很方便。直接pip install diagrams即可。但是安装好了之后,咋还用不了,需要安装Graphviz,我们可以这样理解diagrams只是提供一些基础的语法,然后拼接成指定的graphviz运行文件,然后调用graphviz去执行,最后将结果输出。Diagrams调用graphviz是通过系统变量来调用的,因此如果在没有安装graphviz的情况下运行就会出现下边的报错。这说明我们的系统变量中没有这个graphviz或者压根就没安装。

1.graphviz安装

https://www.graphviz.org/download/

上边是官方网站,我们下载合适的版本,然后直接下一步往下安装。

这里有个小钩,我们选择将其添加到系统变量中。

安装成功之后,我们使用命令

dot -version查看是否安装成功

在按照号diagrams和graphviz之后,我们就开始撸代码画架构图了。这个就需要了解人家的语法了。我们大概的学着画一下,试试看。创建一个python文件

from diagrams import Diagram, Cluster, Edgefrom diagrams.aws.compute import EC2, ECSfrom diagrams.aws.database import RDSfrom diagrams.aws.network import ELB, Route53, NLBfrom diagrams.elastic.elasticsearch import Elasticsearchfrom diagrams.onprem.compute import Serverfrom diagrams.onprem.database import Mysqlfrom diagrams.onprem.inmemory import Redisfrom diagrams.onprem.network import Nginx, Haproxywith Diagram("xx平台",show=False):    ha=Haproxy("ha")    nginx=Nginx("nginx")        with Cluster("hz"):        servers=[Server("155"),Server("163"),Server("13.155")]    with Cluster("缓存"):        redisMater=Redis("centinel")        redisMater-[Redis("cluster1")]        servers-Edge(style="brow",color="dotted")-redisMater            with Cluster("数据库"):        rmaster=Mysql("mysql")        rmaster-Edge(color="brow",style="dotted")-Mysql("cluster")        servers-Edge(style="brow",color="dashed")-rmaster            with Cluster("文件"):        emaster=Elasticsearch("mster")        emaster-Edge(color="brow",style="dotted")-Elasticsearch("cluster")        servers-Edge(style="brow",color="dashed")-emaster    ha>>nginx>>servers

运行结束之后就画好了我们需要的图。

这块基本上需要的架构元素这个diagrams都含有了。我们特意编写错误的代码,然后让代码无法生成架构图,然后在dot脚本中看到我们需要的架构图片的路径。

我们发现我们所需的各种架构图片这里都有。

这块咋也看不懂这些标志是什么意思。如果想画一个完美的可能还得凭感觉写单词,然后看人家库里有没有,然后在编写代码。这就比较痛苦了。

天晚了,早点睡哦~

转载地址:http://lzumi.baihongyu.com/

你可能感兴趣的文章
Spark Shuffle及其调优
查看>>
数据仓库分层
查看>>
常见数据结构-TrieTree/线段树/TreeSet
查看>>
Hive数据倾斜
查看>>
TopK问题
查看>>
Hive调优
查看>>
HQL排查数据倾斜
查看>>
DAG以及任务调度
查看>>
LeetCode——DFS
查看>>
MapReduce Task数目划分
查看>>
ZooKeeper分布式锁
查看>>
3126 Prime Path
查看>>
app自动化测试---ADBInterface驱动安装失败问题:
查看>>
RobotFramework+Eclipse安装步骤
查看>>
测试的分类
查看>>
photoshop cc2019快捷键
查看>>
pycharm2019版本去掉下划线的方法
查看>>
SQL中EXISTS的用法
查看>>
10丨案例:在JMeter中如何设置参数化数据?
查看>>
11丨性能脚本:用案例和图示帮你理解HTTP协议
查看>>