本文主要是介绍python也能画架构图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天无意中发现了一个画架构图的东西,还是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, Edge
from diagrams.aws.compute import EC2, ECS
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB, Route53, NLB
from diagrams.elastic.elasticsearch import Elasticsearch
from diagrams.onprem.compute import Server
from diagrams.onprem.database import Mysql
from diagrams.onprem.inmemory import Redis
from 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")-redisMaterwith Cluster("数据库"):rmaster=Mysql("mysql")rmaster-Edge(color="brow",style="dotted")-Mysql("cluster")servers-Edge(style="brow",color="dashed")-rmasterwith Cluster("文件"):emaster=Elasticsearch("mster")emaster-Edge(color="brow",style="dotted")-Elasticsearch("cluster")servers-Edge(style="brow",color="dashed")-emasterha>>nginx>>servers
运行结束之后就画好了我们需要的图。
这块基本上需要的架构元素这个diagrams都含有了。我们特意编写错误的代码,然后让代码无法生成架构图,然后在dot脚本中看到我们需要的架构图片的路径。
我们发现我们所需的各种架构图片这里都有。
这块咋也看不懂这些标志是什么意思。如果想画一个完美的可能还得凭感觉写单词,然后看人家库里有没有,然后在编写代码。这就比较痛苦了。
天晚了,早点睡哦~
这篇关于python也能画架构图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!