搜尋
首頁後端開發Python教學圖表即代碼:為視覺內容建立動態和互動式文檔

在本文中,我將逐步指導您使用圖表即程式碼工具建立動態和互動式視覺化文件。我們將以程式設計方式產生圖表,而不是靜態圖像,確保它們始終是最新且易於維護的。

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


?圖表作為程式碼

圖表即程式碼是一種允許您透過程式碼而不是傳統圖形工具建立圖表的方法。您可以在文字檔案中編寫程式碼來定義圖表的結構、元件和連接,而不是手動建立圖表。

然後,該程式碼被轉換為圖形圖像,從而更容易在軟體專案中整合和記錄,這對於以程式設計方式建立和更新架構和流程圖特別有用。


什麼是圖表?

Diagrams 是一個 ?Python 庫,它實現了圖表即程式碼方法,使您能夠透過程式碼建立架構基礎設施圖和其他類型的圖表。借助圖表,您只需幾行程式碼即可輕鬆定義雲端基礎架構元件(例如 AWS、Azure 和 GCP)、網路元素、軟體服務等。

?圖即程式碼的好處

  • 將圖表表示為程式碼:直接從程式碼建立和更新圖表,確保敏捷專案的可維護性。
  • 自動化文件:從程式碼產生視覺效果,使圖表與目前架構保持一致。
  • 更改控制:追蹤圖表隨時間的修改。
  • 增強清晰度:透過清晰、共享的視覺效果來提高對複雜系統的理解。
  • ✏️ 可自訂:以靈活且客製化的視覺效果表示雲端基礎設施、工作流程或資料管道。

教學

?庫安裝

我目前在本教程中使用版本“0.23.4”。

!pip install diagrams=='0.23.4'

?圖表:節點

該程式庫可讓您以程式設計方式建立架構圖,使用節點來表示不同的基礎架構元件和服務。


節點類型

圖中的節點代表來自不同雲端服務供應商的元件以及其他架構元素。以下是可用節點的主要類別:

  • ☁️ 雲端供應商:AWS (Amazon Web Services)、Azure、GCP、IBM Cloud、阿里雲、Oracle Cloud、DigitalOcean 等。
  • 本地:代表實體上位於公司場所的基礎設施。
  • Kubernetes (K8S):容器編排系統,用於自動化容器化應用程式的部署、擴展和管理(以船輪表示,象徵控制和導航)。
  • ?️ OpenStack:用於建立和管理公有雲和私有雲的開源軟體平台。
  • 通用:通用節點,可以表示特定於提供者的節點未專門覆蓋的任何元件(交叉工具,表示一個類別中的不同工具)。
  • ☁️ SaaS(軟體即服務):表示透過網路作為服務交付的應用程序,例如Snowflake、聊天服務(Slack、Teams、Telegram 等)、安全性(例如Okta) ),或社交網路(為了SaaS 概念劃掉了電話和雲端)。
  • 自訂:允許使用者使用儲存在特定資料夾中的 PNG 圖示自訂圖表。這對於表示預設節點(劃掉的自訂工具)未涵蓋的基礎架構元件非常有用。

?程式設計語言

Diagrams 函式庫允許您使用不同的節點來表示各種程式語言。這些節點有助於在圖表中指示架構的任何部分是否使用以特定程式語言開發的腳本或元件。

下面,我們將展示庫中所有可用的語言。如果缺少任何語言,您可以透過將相應的徽標上傳到特定資料夾來新增自訂節點。

!pip install diagrams=='0.23.4'

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


☁️ AWS(亞馬遜網路服務)

我們可以使用 Amazon 節點,這些節點分為幾個類別,例如:

  • 分析與業務:aws.analytics、aws.business
  • 計算與儲存:aws.compute、aws.storage、aws.cost
  • 資料庫與開發工具:aws.database、aws.devtools
  • 整合與管理:aws.integration、aws.management
  • 機器學習與移動:aws.ml、aws.mobile
  • 網路與安全性:aws.network、aws.security
  • 其他:aws.blockchain、aws.enduser、aws.engagement、aws.game、aws.general、aws.iot、aws.media、aws.migration、aws.quantum、aws.robotics、aws。衛星

接下來,我們將代表這些類別之一以視覺化 aws.database 中的可用節點。

!pip install diagrams=='0.23.4'

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


☁️ 使用案例

現在,讓我們建立一個簡單的藍圖,對應於在 AWS 上匯入資料集並訓練機器學習模型。

# Create the diagram object
with diagrams.Diagram("Programming Languages", show=False, filename="languages"):
    # Get all the languages available in this library
    languages = [item for item in dir(diagrams.programming.language) if item[0] != '_']

    # Divide the representation in two lines
    mid_index = len(languages) // 2
    first_line = languages[:mid_index]
    second_line = languages[mid_index:]

    # Add nodes in the first row
    prev_node = None

    for language in first_line:
        current_node = eval(f"diagrams.programming.language.{language}(language)")
        if prev_node is not None:
            prev_node >> current_node
        prev_node = current_node

    # Add nodes in the second row
    prev_node = None

    for language in second_line:
        current_node = eval(f"diagrams.programming.language.{language}(language)")
        if prev_node is not None:
            prev_node >> current_node
        prev_node = current_node

Image("languages.png")

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


儲存庫

以下是全部程式碼鏈接,如果覺得有用,可以給個star⭐️並關注我,接收新文章通知。這將幫助我在技術社群中成長並創造更多內容。

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content 羅米門德斯 / 圖表即程式碼

有關如何使用「文件為圖表」方法建立文件項目的教學課程

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content


?圖表即代碼:為視覺內容建立動態和互動式文件

圖表即程式碼是一種允許您透過程式碼而不是傳統圖形工具建立圖表的方法。您可以在文字檔案中編寫程式碼來定義圖表的結構、元件和連接,而不是手動建立圖表。

Diagram-as-Code: Creating Dynamic and Interactive Documentation for Visual Content

然後,該程式碼被轉換為圖形圖像,從而更容易在軟體專案中整合和記錄,這對於以程式設計方式建立和更新架構和流程圖特別有用。

什麼是圖表?

Diagrams 是一個 ?Python 庫,它實現了圖表即程式碼方法,使您能夠透過程式碼建立架構基礎設施圖和其他類型的圖表。借助圖表,您只需幾行程式碼即可輕鬆定義雲端基礎架構元件(例如 AWS、Azure 和 GCP)、網路元素、軟體服務等。

?圖即程式碼的好處

  • ? …


在 GitHub 上查看


如果您想了解如何使用此管道實現文件站點,您可以閱讀我在以下連結中發布的文章


?參考

  1. 圖表: https://diagrams.mingrammer.com/

以上是圖表即代碼:為視覺內容建立動態和互動式文檔的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python:編譯器還是解釋器?Python:編譯器還是解釋器?May 13, 2025 am 12:10 AM

Python是解釋型語言,但也包含編譯過程。 1)Python代碼先編譯成字節碼。 2)字節碼由Python虛擬機解釋執行。 3)這種混合機制使Python既靈活又高效,但執行速度不如完全編譯型語言。

python用於循環與循環時:何時使用哪個?python用於循環與循環時:何時使用哪個?May 13, 2025 am 12:07 AM

UseeAforloopWheniteratingOveraseQuenceOrforAspecificnumberoftimes; useAwhiLeLoopWhenconTinuingUntilAcIntiment.forloopsareIdealForkNownsences,而WhileLeleLeleLeleLeleLoopSituationSituationsItuationsItuationSuationSituationswithUndEtermentersitations。

Python循環:最常見的錯誤Python循環:最常見的錯誤May 13, 2025 am 12:07 AM

pythonloopscanleadtoerrorslikeinfiniteloops,modifyingListsDuringteritation,逐個偏置,零indexingissues,andnestedloopineflinefficiencies

對於循環和python中的循環時:每個循環的優點是什麼?對於循環和python中的循環時:每個循環的優點是什麼?May 13, 2025 am 12:01 AM

forloopsareadvantageousforknowniterations and sequests,供應模擬性和可讀性;而LileLoopSareIdealFordyNamicConcitionSandunknowniterations,提供ControloperRoverTermination.1)forloopsareperfectForeTectForeTerToratingOrtratingRiteratingOrtratingRitterlistlistslists,callings conspass,calplace,cal,ofstrings ofstrings,orstrings,orstrings,orstrings ofcces

Python:深入研究彙編和解釋Python:深入研究彙編和解釋May 12, 2025 am 12:14 AM

pythonisehybridmodeLofCompilation和interpretation:1)thepythoninterpretercompilesourcecececodeintoplatform- interpententbybytecode.2)thepythonvirtualmachine(pvm)thenexecutecutestestestestestesthisbytecode,ballancingEaseofuseEfuseWithPerformance。

Python是一種解釋或編譯語言,為什麼重要?Python是一種解釋或編譯語言,為什麼重要?May 12, 2025 am 12:09 AM

pythonisbothinterpretedAndCompiled.1)它的compiledTobyTecodeForportabilityAcrosplatforms.2)bytecodeisthenInterpreted,允許fordingfordforderynamictynamictymictymictymictyandrapiddefupment,儘管Ititmaybeslowerthananeflowerthanancompiledcompiledlanguages。

對於python中的循環時循環與循環:解釋了關鍵差異對於python中的循環時循環與循環:解釋了關鍵差異May 12, 2025 am 12:08 AM

在您的知識之際,而foroopsareideal insinAdvance中,而WhileLoopSareBetterForsituations則youneedtoloopuntilaconditionismet

循環時:實用指南循環時:實用指南May 12, 2025 am 12:07 AM

ForboopSareSusedwhenthentheneMberofiterationsiskNownInAdvance,而WhileLoopSareSareDestrationsDepportonAcondition.1)ForloopSareIdealForiteratingOverSequencesLikelistSorarrays.2)whileLeleLooleSuitableApeableableableableableableforscenarioscenarioswhereTheLeTheLeTheLeTeLoopContinusunuesuntilaspecificiccificcificCondond

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境