溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python3使用diagrams繪制架構(gòu)圖的操作方法

發(fā)布時(shí)間:2021-04-09 10:28:39 來源:億速云 閱讀:348 作者:啵贊 欄目:開發(fā)技術(shù)

這篇文章主要講解了“python3使用diagrams繪制架構(gòu)圖的操作方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python3使用diagrams繪制架構(gòu)圖的操作方法”吧!

python是什么意思

Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計(jì)是用于編寫自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。

diagrams的安裝

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

[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來繪制一個(gè)最簡(jiǎn)單的邏輯關(guān)系圖,從負(fù)載均衡服務(wù)器節(jié)點(diǎn),再到具體的數(shù)據(jù)庫:

# 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)圖:

python3使用diagrams繪制架構(gòu)圖的操作方法

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

組件簇的定義

同樣來自于官方文檔中的示例,我們不僅可以定義單一的組件,還可以將概念中可以組成一個(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)行方式也是通過python3 example2.py,同樣的會(huì)在當(dāng)前目錄下生成一個(gè)這樣的圖像文件:

python3使用diagrams繪制架構(gòu)圖的操作方法

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

總結(jié)概要

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

感謝各位的閱讀,以上就是“python3使用diagrams繪制架構(gòu)圖的操作方法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)python3使用diagrams繪制架構(gòu)圖的操作方法這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI