濮阳杆衣贸易有限公司

主頁 > 知識庫 > python3使用diagrams繪制架構(gòu)圖的步驟

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

熱門標簽:打印谷歌地圖標注 看懂地圖標注方法 電話外呼系統(tǒng)招商代理 佛山通用400電話申請 淮安呼叫中心外呼系統(tǒng)如何 廣東旅游地圖標注 電話機器人貸款詐騙 京華圖書館地圖標注 蘇州人工外呼系統(tǒng)軟件

技術(shù)背景

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

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

首先我們用diagrams來繪制一個最簡單的邏輯關(guān)系圖,從負載均衡到服務(wù)器節(jié)點,再到具體的數(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)系

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

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

組件簇的定義

同樣來自于官方文檔中的示例,我們不僅可以定義單一的組件,還可以將概念中可以組成一個模塊的多個組件組成一個耦合簇,在架構(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

運行方式也是通過python3 example2.py,同樣的會在當前目錄下生成一個這樣的圖像文件:

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

總結(jié)概要

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

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

您可能感興趣的文章:
  • python opencv常用圖形繪制方法(線段、矩形、圓形、橢圓、文本)
  • Python繪制的愛心樹與表白代碼(完整代碼)
  • 用R語言繪制ROC曲線的實例講解
  • python 如何在 Matplotlib 中繪制垂直線
  • 詳解CocosCreator華容道數(shù)字拼盤
  • 詳解CocosCreator游戲之魚群算法
  • 詳解CocosCreator優(yōu)化之DrawCall
  • CocosCreator實現(xiàn)技能冷卻效果
  • 如何在CocosCreator里畫個炫酷的雷達圖

標簽:呼和浩特 湖州 畢節(jié) 股票 江蘇 駐馬店 衡水 中山

巨人網(wǎng)絡(luò)通訊聲明:本文標題《python3使用diagrams繪制架構(gòu)圖的步驟》,本文關(guān)鍵詞  python3,使用,diagrams,繪制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python3使用diagrams繪制架構(gòu)圖的步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于python3使用diagrams繪制架構(gòu)圖的步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    富宁县| 尚志市| 万盛区| 湘阴县| 奎屯市| 保靖县| 富川| 杭锦旗| 冷水江市| 胶南市| 轮台县| 廊坊市| 宝兴县| 益阳市| 宾川县| 上杭县| 哈巴河县| 洛宁县| 崇左市| 丹江口市| 沙雅县| 芷江| 黑水县| 彰化市| 宣化县| 武川县| 大洼县| 安溪县| 万全县| 四会市| 上思县| 遂昌县| 济阳县| 昆明市| 张家港市| 梁平县| 麦盖提县| 塘沽区| 松滋市| 家居| 手游|