• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python3使用diagrams绘制架构图的步骤

    技术背景

    对于一个架构师或者任何一个软件工程师而言,绘制架构图都是一个比较值得学习的技能。这就像我们学习的时候整理的一些Xmind那种思维逻辑图一样,不仅可以帮我们看到组件之间的联系和层级,还能够展示出组件的全貌。虽然我们也可以用Visio或者Edraw等专业绘图工具来绘制架构图,但是对于工程师而言,用代码来直接绘制架构图,会显得更加的优雅。这里我们介绍的diagrams,就是一个可以用来绘制架构图的python包。

    diagrams的安装

    与其他python库一样的,diagrams也可以通过pip来进行安装和管理,这里为了更快的安装,我们使用了腾讯的镜像源来加速:

    [dechin@dechin-manjaro diagrams]$ python3 -m pip install diagrams -i https://mirrors.cloud.tencent.com/pypi/simple 
    Looking in indexes: https://mirrors.cloud.tencent.com/pypi/simple
    Collecting diagrams
      Downloading https://mirrors.cloud.tencent.com/pypi/packages/d6/4e/d4725222ac080375954d63d3c90243fdaa219fe085327d42b9dc68c71293/diagrams-0.19.1-py3-none-any.whl (19.2 MB)
         |████████████████████████████████| 19.2 MB 6.7 MB/s 
    Requirement already satisfied: graphviz0.17.0,>=0.13.2 in /home/dechin/anaconda3/lib/python3.8/site-packages (from diagrams) (0.16)
    Requirement already satisfied: jinja23.0,>=2.10 in /home/dechin/anaconda3/lib/python3.8/site-packages (from diagrams) (2.11.2)
    Requirement already satisfied: MarkupSafe>=0.23 in /home/dechin/anaconda3/lib/python3.8/site-packages (from jinja23.0,>=2.10->diagrams) (1.1.1)
    Installing collected packages: diagrams
    Successfully installed diagrams-0.19.1

    基础逻辑关系图

    首先我们用diagrams来绘制一个最简单的逻辑关系图,从负载均衡到服务器节点,再到具体的数据库:

    # example1.py
    
    from diagrams import Diagram
    from diagrams.aws.compute import EC2
    from diagrams.aws.database import RDS
    from diagrams.aws.network import ELB
    
    with Diagram("Web Service", show=False):
        ELB("lb") >> EC2("web") >> RDS("userdb") # 箭头关系

    在这个案例中我们使用了AWS提供的一些基础架构组件的标签,并且可以指定各个组件模块的名称。上述代码可以直接执行:python3 example1.py,然后会在当前目录下生成一个这样的架构图:

    整体感觉还是比较精美的,只是如果使用专业工具如Visio等来画图的话,我们还可以直接对图片进行切割,操作起来会更加方便。

    组件簇的定义

    同样来自于官方文档中的示例,我们不仅可以定义单一的组件,还可以将概念中可以组成一个模块的多个组件组成一个耦合簇,在架构图中展现:

    # example2.py
    
    from diagrams import Diagram, Cluster
    from diagrams.aws.compute import EC2
    from diagrams.aws.database import RDS
    from diagrams.aws.network import ELB
    
    with Diagram("Web Service Cluster", show=False):
        with Cluster("DB Cluster"):
            db_master = RDS("master")
            db_master - [RDS("slave1"), RDS("slave2")] # 直线连接
        ELB("lb") >> EC2("web") >> db_master

    运行方式也是通过python3 example2.py,同样的会在当前目录下生成一个这样的图像文件:

    我们可以看到刚才定义的几个数据库组件,被统一的收纳到了一个数据库的耦合簇中。

    总结概要

    本文中通过python库diagrams展示了基础的架构图绘制的方法,库中提供了常用的AWS和k8S等场景下常用的组件标签,使得我们用python代码也可以绘制精美清晰的架构图。这里组件之间的连接和耦合关系,也可以通过简单的符号进行实现,这也得益于python中所特有的魔法函数。

    以上就是python3使用diagrams生成架构图的步骤的详细内容,更多关于python 用diagrams生成架构图的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
    • Python绘制的爱心树与表白代码(完整代码)
    • 用R语言绘制ROC曲线的实例讲解
    • python 如何在 Matplotlib 中绘制垂直线
    • 详解CocosCreator华容道数字拼盘
    • 详解CocosCreator游戏之鱼群算法
    • 详解CocosCreator优化之DrawCall
    • CocosCreator实现技能冷却效果
    • 如何在CocosCreator里画个炫酷的雷达图
    上一篇:Python模块介绍与使用详细讲解
    下一篇:selenium.webdriver中add_argument方法常用参数表
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python3使用diagrams绘制架构图的步骤 python3,使用,diagrams,绘制,