亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Python通過代碼創(chuàng)建圖表的詳細步驟

 更新時間:2024年12月19日 09:10:06   作者:張無忌打怪獸  
這篇文章主要介紹了使用Python通過代碼創(chuàng)建圖表的詳細步驟,文中介紹了如何使用DiagramasCode工具創(chuàng)建基礎架構的架構圖,并通過Python腳本生成并上傳到對象存儲桶,需要的朋友可以參考下

簡介

Diagram as Code 工具允許您創(chuàng)建基礎架構的架構圖。您可以重復使用代碼、測試、集成和自動化繪制圖表的過程,這將使您能夠將文檔視為代碼,并構建用于映射基礎架構的流水線。您可以使用 diagrams 腳本與許多云提供商和自定義基礎架構。

在本教程中,您將使用 Python 創(chuàng)建一個基本的圖表,并將其上傳到對象存儲桶。完成后,您將了解 diagrams 腳本的工作原理,從而能夠創(chuàng)建新的集成。

步驟 1 — 安裝 Graphviz

在這一步中,您將安裝 Graphviz 工具。Graphviz 是 diagrams 模塊的引擎,它生成圖表本身。

首先,更新服務器的軟件包:

sudo apt update

然后,使用以下命令安裝 Graphviz:

sudo apt install -y graphviz

-y 選項會自動回答安裝過程中的任何額外提示。您也可以下載其他發(fā)行版的 Graphviz。

安裝完成后,您將擁有安裝的 Graphviz。

因為您將在本教程后面使用 Pip3 安裝 Python 依賴項,您可以檢查您是否有正確的版本:

pip3 --version

您應該會看到類似以下的內容:

pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

在這一步中,您更新了服務器,安裝了 Graphviz,并檢查了 Pip 的版本。接下來,您將構建 diagrams 腳本。

步驟 2 — 構建 Python 腳本

在這一步中,您將在 Python 中編寫一個示例圖表腳本。

首先,創(chuàng)建一個工作文件夾:

mkdir ~/my-diagram

創(chuàng)建項目文件夾后,使用以下命令進入該文件夾:

cd ~/my-diagram

然后,創(chuàng)建一個 requirements.txt 文件以跟蹤項目依賴項:

echo -e "diagrams==0.21.1\ngraphviz==0.16" | tee requirements.txt

此命令有兩個關鍵字:echo 將打印字符串,-e 選項將使用 \n 插入來解析新行,以創(chuàng)建一個格式良好的 requirements 文件。

| 符號表示將 echo 語句的結果傳遞給管道。tee 命令接受管道輸入,并根據列出的參數創(chuàng)建一個新文件:在本例中,是 requirements.txt。

Python 中的 requirements.txt 文件提供了運行腳本所需的模塊列表。目前,該項目有兩個依賴項。
創(chuàng)建文件后,您將看到以下輸出:

diagrams=0.21.1
graphviz=0.16

此顯示指示了兩個工具的版本號。

現在,您將編寫 Python 腳本以創(chuàng)建圖表圖像。

確保您仍在創(chuàng)建的目錄中:

cd ~/my-diagram

接下來,使用 nano 或您喜歡的文本編輯器打開一個新文件:

nano my-diagram.py

添加以下代碼:

from diagrams import Diagram, Cluster, Edge

此行將導入創(chuàng)建通用圖表元素所需的圖表部件。

接下來,您必須導入繪制您將構建的 DigitalOcean 基礎架構所需的內容。在本示例中,您將創(chuàng)建一個圖表,顯示兩個 Droplets 連接到一個數據庫,并且所有主機都將日志發(fā)送到一個 Logstash 實例。

添加以下行以導入 Droplet、DbaasPrimary 和 Logstash 圖標:

...
from diagrams.digitalocean.compute import Droplet
from diagrams.digitalocean.database import DbaasPrimary
from diagrams.elastic.elasticsearch import Logstash

這些行導入了本教程所需的圖標。您可以在 Mingrammer 文檔中找到所有可用的 DigitalOcean 圖標。

導入圖標后,您可以開始構建圖表。此代碼部分將創(chuàng)建一個名為 My Diagram: Droplets 的圖表:

...
with Diagram("My Diagram: Droplets", show=False, filename="my-diagram", direction="LR"):

show 參數可以在創(chuàng)建時打開它,但由于您正在使用 Linux 主機,它已設置為 False。生成的文件將被命名為分配給 filename 的任何字符串。direction 是您希望圖表打印的方向。direction 的支持值為 TB(從上到下)和 LR(從左到右)。選擇 direction 可以使圖表更易于閱讀。對于此圖表,您將使用 LR。

最后,將圖標添加到圖表中:

...
with Diagram("My Diagram: Droplets", show=False, filename="my-diagram", direction="LR"):
    with Cluster("DigitalOcean"):
        droplet1 = Droplet("My first Droplet")
        droplet2 = Droplet("My second Droplet")

    db = DbaasPrimary("My database")

    logstash = Logstash("Logstash service")

Cluster 在圖表中為您的 Droplets 創(chuàng)建一個框,顯示它們在名為 DigitalOcean 的空間中。DropletDbaasPrimary 和 Logstash 將創(chuàng)建以字符串提供的圖標名稱。

接下來,您將通過添加以下行來在圖表中的各個項目之間創(chuàng)建依賴關系:

...
    [droplet1, droplet2] >> db >> [droplet1, droplet2]
    [droplet1, droplet2, db] >> Edge(color="firebrick", style="dashed") >> logstash

您將您的 Droplets 連接到上面創(chuàng)建的 DbaasPrimary 數據庫,既讀又寫。然后,您添加了一個顏色為 firebrick 的虛線,以指示從 Droplets 和主數據庫到 Logstash 的連接。

您的最終 my-diagram.py 文件將如下所示:

from diagrams import Diagram, Cluster, Edge
from diagrams.digitalocean.compute import Droplet
from diagrams.digitalocean.database import DbaasPrimary
from diagrams.elastic.elasticsearch import Logstash

with Diagram("My Diagram: Droplets", show=False, filename="my-diagram", direction="LR"):
    with Cluster("DigitalOcean"):
        droplet1 = Droplet("My first droplet")
        droplet2 = Droplet("My second droplet")

    db = DbaasPrimary("My database")
    
    logstash = Logstash("Logstash service")
    
    [droplet1, droplet2] >> db >> [droplet1, droplet2]
    [droplet1, droplet2, db] >> Edge(color="firebrick", style="dashed") >> logstash

保存并關閉文件。

現在,您在同一個文件夾中有一個名為 my-diagram.py 和一個名為 requirements.txt 的文件。

有了這兩個文件,您可以安裝所需的模塊并創(chuàng)建圖表。

步驟 3 — 創(chuàng)建圖表

完成編寫 Python 腳本后,您可以運行它以創(chuàng)建圖表。

首先使用 Pip 安裝所需的庫:

pip3 install -r requirements.txt

您將看到以下輸出:

Collecting diagrams==0.21.1
  Using cached diagrams-0.21.1-py3-none-any.whl (23.8 MB)
Collecting graphviz==0.16
  Using cached graphviz-0.16-py2.py3-none-any.whl (19 kB)
Requirement already satisfied: jinja2<4.0,>=2.10 in /usr/lib/python3/dist-packages (from diagrams==0.21.1->-r requirements.txt (line 1)) (2.10.1)
Installing collected packages: graphviz, diagrams
Successfully installed diagrams-0.21.1 graphviz-0.16

安裝完成所需的庫后,運行 Python 腳本:

python3 my-diagram.py

此腳本將生成一個名為 my-diagram.png 的圖表,如下所示:

!The Droplets and Database diagram

有關不同類型圖標和使用此模塊的其他方法的更多信息,請參閱 Mingrammer 文檔。

在這一步中,您已創(chuàng)建了圖表。接下來,您將把它添加到對象存儲中,以便可以訪問 .png 文件。

步驟 4 — 將圖表上傳到對象存儲

為了能夠從不同位置查看您的圖表,現在將圖表上傳到對象存儲。在本教程中,您將使用 DigitalOcean Spaces 存儲桶。

在先決條件中,您已設置了一個 Spaces 存儲桶并創(chuàng)建了一組訪問密鑰。

接下來,安裝 s3cmd,這是一個用于通過 CLI 與 s3 風格 API 進行交互的工具:

sudo apt install -y s3cmd

安裝完成后,配置 s3cmd

s3cmd --configure

現在,您將使用 API 憑據和其他首選項設置配置。下面的每個提示將作為自己的行加載,因此請使用您的信息和選擇更新下面的突出顯示部分:

HTTP 代理服務器名稱:

新設置:
訪問密鑰:your-access-key
密鑰:your-secret-key
默認區(qū)域:EU
S3 端點:ams3.digitaloceanspaces.com
用于訪問存儲桶的 DNS 樣式主機名+端口模板:%(bucket)s.ams3.digitaloceanspaces.com
加密密碼:your-encryption-password
GPG 程序路徑:/usr/bin/gpg
使用 HTTPS 協(xié)議:True
HTTP 代理服務器名稱:
HTTP 代理服務器端口:0

S3 端點 需要與 Spaces 設置中提供的端點匹配,并且 DNS 樣式 需以類似格式的方式設置。上面的示例使用 ams3,因為此 Spaces 存儲桶托管在阿姆斯特丹數據中心 3 上。請相應更新您的設置。

設置完首選項后,選擇 Y 來測試憑據:

使用提供的憑據測試訪問權限?[Y/n] Y

測試將運行。如果失敗,您可以提供新的憑據進行配置并重試。一旦成功,您將看到以下顯示:

請稍候,嘗試列出所有存儲桶...
成功。您的訪問密鑰和密鑰工作正常 :-)

現在驗證加密是否有效...
成功。加密和解密工作正常 :-)

現在,您可以通過運行 s3cmd 命令上傳文件:

s3cmd put my-diagram.png s3://your_space_name/my-diagram.png

上傳完成后,您將看到以下顯示:

upload: 'my-diagram.png' -> 's3://your-space-name/my-diagram.png'  [1 of 1]
 43672 of 43672   100% in    0s  1516.98 kB/s  done

如果您的存儲桶是公開訪問的,或者您已將圖表設置為公開,您可以訪問 https://your-space-name.ams3.digitaloceanspaces.com/my-diagram.png 查看您的圖表。請確保使用您的存儲桶名稱和其數據中心更新 URL。

如果您的存儲桶不是公開訪問的,您可以更改文件權限使其公開,或者您可以從存儲桶下載圖像到本地計算機。

如果您不需要保留在本教程中創(chuàng)建的服務器和對象存儲,您可以按照文檔中有關刪除 Droplets 和銷毀 Spaces 的說明進行操作。

結論

您已使用 Python 創(chuàng)建了一個圖表,您可以根據需要修改它以滿足您未來的圖表創(chuàng)建需求。您將不再需要手動拖動框來創(chuàng)建圖表。

到此這篇關于使用Python通過代碼創(chuàng)建圖表的文章就介紹到這了,更多相關Python創(chuàng)建圖表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python 照片人物背景替換的實現方法

    Python 照片人物背景替換的實現方法

    本文主要介紹了如何通過Python實現照片中人物背景圖的替換,甚至可以精細到頭發(fā)絲,感興趣的小伙伴可以看看
    2021-11-11
  • Python常用base64 md5 aes des crc32加密解密方法匯總

    Python常用base64 md5 aes des crc32加密解密方法匯總

    這篇文章主要介紹了Python常用base64 md5 aes des crc32加密解密方法匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 利用Python搶回在螞蟻森林逝去的能量(實現代碼)

    利用Python搶回在螞蟻森林逝去的能量(實現代碼)

    螞蟻森林是一項旨在帶動公眾低碳減排的公益項目,每個人的低碳行為在螞蟻森林里可計為"綠色能量",很多小伙伴都玩過,今天小編給大家分享一篇教程關于Python搶回在螞蟻森林逝去的能量,感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • 用python結合jieba和wordcloud實現詞云效果

    用python結合jieba和wordcloud實現詞云效果

    詞云,顧名思義就是很多個單詞,然后通過出現的頻率或者比重之類的標準匯聚成一個云朵的樣子嘛,其實呢現在網上已經有很多能自動生成詞云的工具了,比如Wordle,Tagxedo等等,Python也能實現這樣的效果,我們通過jieba庫和wordcloud庫也能十分輕松的完成詞云的構建
    2017-09-09
  • python實現在windows下操作word的方法

    python實現在windows下操作word的方法

    這篇文章主要介紹了python實現在windows下操作word的方法,涉及Python操作word實現打開、插入、轉換、打印等操作的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 使用python無賬號無限制獲取企查查信息的實例代碼

    使用python無賬號無限制獲取企查查信息的實例代碼

    這篇文章主要介紹了使用python無賬號無限制獲取企查查信息的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • OpenCV-Python 攝像頭實時檢測人臉代碼實例

    OpenCV-Python 攝像頭實時檢測人臉代碼實例

    這篇文章主要介紹了OpenCV-Python 攝像頭實時檢測人臉,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Pytest使用logging模塊寫日志的實例詳解

    Pytest使用logging模塊寫日志的實例詳解

    logging是python語言中的一個日志模塊,專門用來寫日志的,日志級別通常分為debug、info、warning、error、critical幾個級別,一般情況下,默認的日志級別為warning,在調試或者測試階段,下面就快速體驗一下logging模塊寫日志的用法,感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • Python如何使用seleniumwire接管Chrome查看控制臺中參數

    Python如何使用seleniumwire接管Chrome查看控制臺中參數

    文章介紹了如何使用Python的seleniumwire庫來接管Chrome瀏覽器,并通過控制臺查看接口參數,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • opencv形態(tài)學中的孔洞填充詳細圖解

    opencv形態(tài)學中的孔洞填充詳細圖解

    我們在進行圖像分割后,分割結果有時會有一些小孔洞,如圖1所示,其中黑白兩色表示兩種不同的類別。一般情況下,這些孔洞屬于錯分情況,為了優(yōu)化結果,我們通常對這些孔洞進行填充。今天我們就用python語言基于OpenCV實現孔洞填充
    2022-10-10

最新評論