欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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è)繪圖工具來繪制架構(gòu)圖,但是對(duì)于工程師而言,用代碼來直接繪制架構(gòu)圖,會(huì)顯得更加的優(yōu)雅。這里我們介紹的diagrams,就是一個(gè)可以用來繪制架構(gòu)圖的python包。

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è)最簡單的邏輯關(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)圖:

整體感覺還是比較精美的,只是如果使用專業(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è)這樣的圖像文件:

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

總結(jié)概要

本文中通過python庫diagrams展示了基礎(chǔ)的架構(gòu)圖繪制的方法,庫中提供了常用的AWS和k8S等場景下常用的組件標(biāo)簽,使得我們用python代碼也可以繪制精美清晰的架構(gòu)圖。這里組件之間的連接和耦合關(guā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實(shí)現(xiàn)批量壓縮圖片

    Python實(shí)現(xiàn)批量壓縮圖片

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)批量壓縮圖片的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python3報(bào)錯(cuò)check_hostname?requires?server_hostname的解決

    python3報(bào)錯(cuò)check_hostname?requires?server_hostname的解決

    這篇文章主要介紹了python3報(bào)錯(cuò)check_hostname?requires?server_hostname的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 詳解基于pycharm的requests庫使用教程

    詳解基于pycharm的requests庫使用教程

    本文主要介紹了基于pycharm的requests庫使用教程,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 基于python的字節(jié)編譯詳解

    基于python的字節(jié)編譯詳解

    下面小編就為大家?guī)硪黄趐ython的字節(jié)編譯詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 使用Python進(jìn)行數(shù)獨(dú)求解詳解(一)

    使用Python進(jìn)行數(shù)獨(dú)求解詳解(一)

    本文主要介紹了如何構(gòu)建一個(gè)Python腳本來解決數(shù)獨(dú)難題,本文的重點(diǎn)在于介紹用于構(gòu)建數(shù)獨(dú)求解器的回溯算法。感興趣的小伙伴可以學(xué)習(xí)一下
    2022-02-02
  • Python 讀取某個(gè)目錄下所有的文件實(shí)例

    Python 讀取某個(gè)目錄下所有的文件實(shí)例

    今天小編就為大家分享一篇Python 讀取某個(gè)目錄下所有的文件實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python 通過監(jiān)聽端口實(shí)現(xiàn)唯一腳本運(yùn)行方式

    Python 通過監(jiān)聽端口實(shí)現(xiàn)唯一腳本運(yùn)行方式

    這篇文章主要介紹了Python 通過監(jiān)聽端口實(shí)現(xiàn)唯一腳本運(yùn)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 簡單了解python模塊概念

    簡單了解python模塊概念

    這篇文章主要介紹了簡單了解python模塊概念,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Python實(shí)現(xiàn)匯率轉(zhuǎn)換操作

    Python實(shí)現(xiàn)匯率轉(zhuǎn)換操作

    這篇文章主要介紹了Python實(shí)現(xiàn)匯率轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 僅利用30行Python代碼來展示X算法

    僅利用30行Python代碼來展示X算法

    這篇文章主要介紹了僅利用30行Python代碼來展示X算法,同時(shí)還有對(duì)算法實(shí)現(xiàn)的復(fù)雜度的說明,需要的朋友可以參考下
    2015-04-04

最新評(píng)論