前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python也能画架构图

python也能画架构图

作者头像
写一点笔记
发布2022-08-11 16:43:24
5640
发布2022-08-11 16:43:24
举报
文章被收录于专栏:程序员备忘录程序员备忘录

今天无意中发现了一个画架构图的东西,还是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文件

代码语言:javascript
复制
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, Haproxy


with 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脚本中看到我们需要的架构图片的路径。

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

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

天晚了,早点睡哦~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 写点笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档