最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3使用diagrams繪制架構(gòu)圖的步驟

 更新時(shí)間:2021年04月08日 15:34:47   作者:陸言君  
這篇文章主要介紹了python3使用diagrams生成架構(gòu)圖的步驟,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

技術(shù)背景

對(duì)于一個(gè)架構(gòu)師或者任何一個(gè)軟件工程師而言,繪制架構(gòu)圖都是一個(gè)比較值得學(xué)習(xí)的技能。這就像我們學(xué)習(xí)的時(shí)候整理的一些Xmind那種思維邏輯圖一樣,不僅可以幫我們看到組件之間的聯(lián)系和層級(jí),還能夠展示出組件的全貌。雖然我們也可以用Visio或者Edraw等專業(yè)繪圖工具來(lái)繪制架構(gòu)圖,但是對(duì)于工程師而言,用代碼來(lái)直接繪制架構(gòu)圖,會(huì)顯得更加的優(yōu)雅。這里我們介紹的diagrams,就是一個(gè)可以用來(lái)繪制架構(gòu)圖的python包。

diagrams的安裝

與其他python庫(kù)一樣的,diagrams也可以通過(guò)pip來(lái)進(jìn)行安裝和管理,這里為了更快的安裝,我們使用了騰訊的鏡像源來(lái)加速:

[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: graphviz<0.17.0,>=0.13.2 in /home/dechin/anaconda3/lib/python3.8/site-packages (from diagrams) (0.16)
Requirement already satisfied: jinja2<3.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 jinja2<3.0,>=2.10->diagrams) (1.1.1)
Installing collected packages: diagrams
Successfully installed diagrams-0.19.1

基礎(chǔ)邏輯關(guān)系圖

首先我們用diagrams來(lái)繪制一個(gè)最簡(jiǎn)單的邏輯關(guān)系圖,從負(fù)載均衡到服務(wù)器節(jié)點(diǎn),再到具體的數(shù)據(jù)庫(kù):

# 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") # 箭頭關(guān)系

在這個(gè)案例中我們使用了AWS提供的一些基礎(chǔ)架構(gòu)組件的標(biāo)簽,并且可以指定各個(gè)組件模塊的名稱。上述代碼可以直接執(zhí)行:python3 example1.py,然后會(huì)在當(dāng)前目錄下生成一個(gè)這樣的架構(gòu)圖:

整體感覺(jué)還是比較精美的,只是如果使用專業(yè)工具如Visio等來(lái)畫圖的話,我們還可以直接對(duì)圖片進(jìn)行切割,操作起來(lái)會(huì)更加方便。

組件簇的定義

同樣來(lái)自于官方文檔中的示例,我們不僅可以定義單一的組件,還可以將概念中可以組成一個(gè)模塊的多個(gè)組件組成一個(gè)耦合簇,在架構(gòu)圖中展現(xiàn):

# 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

運(yùn)行方式也是通過(guò)python3 example2.py,同樣的會(huì)在當(dāng)前目錄下生成一個(gè)這樣的圖像文件:

我們可以看到剛才定義的幾個(gè)數(shù)據(jù)庫(kù)組件,被統(tǒng)一的收納到了一個(gè)數(shù)據(jù)庫(kù)的耦合簇中。

總結(jié)概要

本文中通過(guò)python庫(kù)diagrams展示了基礎(chǔ)的架構(gòu)圖繪制的方法,庫(kù)中提供了常用的AWS和k8S等場(chǎng)景下常用的組件標(biāo)簽,使得我們用python代碼也可以繪制精美清晰的架構(gòu)圖。這里組件之間的連接和耦合關(guān)系,也可以通過(guò)簡(jiǎn)單的符號(hào)進(jìn)行實(shí)現(xiàn),這也得益于python中所特有的魔法函數(shù)。

以上就是python3使用diagrams生成架構(gòu)圖的步驟的詳細(xì)內(nèi)容,更多關(guān)于python 用diagrams生成架構(gòu)圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python使用response.read()接收json數(shù)據(jù)的實(shí)例

    python使用response.read()接收json數(shù)據(jù)的實(shí)例

    今天小編就為大家分享一篇python使用response.read()接收json數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車牌識(shí)別(初步演示版)

    TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車牌識(shí)別(初步演示版)

    這篇文章主要介紹了TensorFlow基于MNIST數(shù)據(jù)集實(shí)現(xiàn)車牌識(shí)別(初步演示版),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • keras打印loss對(duì)權(quán)重的導(dǎo)數(shù)方式

    keras打印loss對(duì)權(quán)重的導(dǎo)數(shù)方式

    這篇文章主要介紹了keras打印loss對(duì)權(quán)重的導(dǎo)數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python中的異常處理講解

    Python中的異常處理講解

    這篇文章介紹了Python中的異常處理,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 使用Python對(duì)MySQL數(shù)據(jù)操作

    使用Python對(duì)MySQL數(shù)據(jù)操作

    本文介紹Python3使用PyMySQL連接數(shù)據(jù)庫(kù),并實(shí)現(xiàn)簡(jiǎn)單的增刪改查。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • 探究Python中isalnum()方法的使用

    探究Python中isalnum()方法的使用

    這篇文章主要介紹了探究Python中isalnum()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 怎么處理Python分割字符串時(shí)有多個(gè)分隔符

    怎么處理Python分割字符串時(shí)有多個(gè)分隔符

    在使用Python處理字符串的時(shí)候,有時(shí)候會(huì)需要分割字符。本文就介紹了Python分割字符串時(shí)有多個(gè)分隔符,感興趣的可以了解一下
    2021-07-07
  • Python學(xué)習(xí)之字典的常用方法總結(jié)

    Python學(xué)習(xí)之字典的常用方法總結(jié)

    這篇文章主要為大家介紹了Python中字典的幾個(gè)常用方法總結(jié),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python字典有一定幫助,需要的可以參考一下
    2022-03-03
  • Pandas中的空字符串(非缺失值)處理方式

    Pandas中的空字符串(非缺失值)處理方式

    這篇文章主要介紹了Pandas中的空字符串(非缺失值)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • pyqt和pyside開(kāi)發(fā)圖形化界面

    pyqt和pyside開(kāi)發(fā)圖形化界面

    選擇PyQt或PySide來(lái)開(kāi)發(fā)圖形界面是因?yàn)镻ython和Qt的跨平臺(tái)特性,Qt5甚至支持iOS和Android,并且開(kāi)發(fā)相同的軟件,Python的效率是極高的,下面看使用示例
    2014-01-01

最新評(píng)論

德格县| 萨嘎县| 宁夏| 奉新县| 临湘市| 古田县| 镇平县| 磴口县| 年辖:市辖区| 兴安县| 邯郸市| 临朐县| 神木县| 泰宁县| 高州市| 个旧市| 龙泉市| 光泽县| 儋州市| 大英县| 廊坊市| 林甸县| 浦东新区| 泸州市| 三台县| 柞水县| 卓资县| 多伦县| 大田县| 铜陵市| 安乡县| 盱眙县| 五大连池市| 获嘉县| 贵溪市| 梨树县| 布尔津县| 静乐县| 黄陵县| 新和县| 赫章县|