首頁 > 後端開發 > Python教學 > ython 專案啟動 Python 學習

ython 專案啟動 Python 學習

Patricia Arquette
發布: 2024-12-21 06:27:09
原創
255 人瀏覽過

開始使用 Python 腳本進行 DevOps 自動化

?介紹

歡迎來到 DevOps 和 Python 的世界
人們普遍認為 DevOps 工程師不編碼,但事實並非如此。 DevOps 工程師通常依靠程式設計技能來自動化流程、管理基礎架構和簡化工作流程。 Python 和 Go 因其多功能性和易用性而成為 DevOps 世界中最受歡迎的兩種語言。

今天,我們將踏上令人興奮的旅程,創建三個 Python 項目,它們不僅向您介紹程式設計的關鍵,還幫助您建立有意義的實用應用程式。

以下是我們將要探索的內容:

  • 天氣程序 — 一個將城市名稱作為使用者輸入並顯示其當前天氣的程式。 (我們將使用 Wea​​therAPI 取得 JSON 格式的資料 — 聽起來很令人興奮,對吧?)
  • GitHub Pull Request Tracker — 一個即時項目,用於列出使用 GitHub 的 API 向 GitHub 儲存庫發出 Pull 請求的使用者。
  • SlackBot for Jenkins Pipeline — 一個專案的奇蹟,它觸發 Jenkins 管道並透過自訂 SlackBot 將其狀態傳遞到您的 Slack 通道。

那麼,你準備好踏上這段旅程了嗎?讓我們開始吧!


?先決條件

在我們深入編碼之前,讓我們確保您擁有開始所需的一切。這些項目適合初學者,但擁有以下工具和技能將使過程更加順利:

1。 Python基礎知識
了解變數、函數、迴圈以及如何使用函式庫將會很有幫助。如果您是新手,請不要擔心 - 這些項目將加強您的學習!

2。 Python環境

確保您的系統上安裝了 Python。您可以從 python.org 下載它。也推薦使用 VS Code 或 PyCharm 等程式碼編輯器。

3。 API 基礎

您將在所有三個項目中使用 API。熟悉發出 HTTP 請求和處理 JSON 回應是一個額外的好處,但我將引導您完成每個步驟。

4。要安裝的工具

  • 用於進行 API 呼叫的 requests 函式庫。使用 pip install requests 安裝它。
  • 第三個項目的 Slack API 憑證和設定。不用擔心;當我們到達那裡時我會提供詳細的說明。
  • 第二個專案的 GitHub 帳戶和第三個專案的 Jenkins 存取權限。

一旦您準備好這些先決條件,我們就可以開始我們的第一個專案 - 建立天氣程序!


?項目一:天氣計劃

讓我們深入研究我們的第一個 Python 專案—天氣程式。這個簡單而實用的腳本將接受用戶輸入的城市名稱並顯示其當前天氣。為了實現這一目標,我們將使用 Wea​​therAPI 來獲取 JSON 格式的即時天氣數據,並以用戶友好的方式顯示它。

工作原理:

  • 腳本提示使用者輸入城市名稱。
  • 使用 WeatherAPIAPI 金鑰,腳本取得指定城市的天氣資料。
  • 來自 API 的 JSON 回應被解析以提取溫度、風速和天氣狀況等資訊。
  • 結果以簡潔、可讀的格式顯示。

逐步說明:

  • 建立一個Python檔:
    • 開啟您喜歡的程式碼編輯器(建議使用 VS Code 或 PyCharm)並建立一個名為weather.py 的新檔案。
    • 插入以下程式碼:
 import requests

 def get_city_weather(city, api_key):
     city_name = city.lower()
     url = f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={city_name}"

     response = requests.get(url)

     if response.status_code == 200:
         data = response.json()

         description = data['current']['condition']['text']
         temp = data['current']['temp_c']
         wind = data['current']['wind_kph']

         print(f"\nWeather in {city.capitalize()}:")
         print(f"Temperature: {temp}°C")
         print(f"Wind Speed: {wind} Km/hr")
         print(f"Condition: {description.capitalize()}")

     else:
         print(f"{city_name} not found.")

 def main():
     city = input("Enter Your City: ")
     API_KEY = "<Your_API_KEY>"

     get_city_weather(city, API_KEY)

 if __name__ == "__main__":
     main()
登入後複製
登入後複製
  • 設定您的 API 金鑰:

    • 造訪 WeatherAPI 並建立免費帳戶。
    • 登入後,選擇免費方案產生您的 API 金鑰。
  • 複製 API 金鑰並在程式碼中替換為實際金鑰。

  • 執行腳本:

    • 在儲存weather.py的資料夾中開啟終端機。
    • 使用 python Weather.py 運行腳本。
    • 出現提示時輸入城市名稱(例如「Ganganagar」)。該腳本將顯示該城市當前的天氣狀況。

範例輸出:

Enter Your City: Ganganagar
Weather in Ganganagar:
Temperature: 24°C
Wind Speed: 10 Km/hr
Condition: Clear
登入後複製
登入後複製

就是這樣!您已經成功創建了您的第一個 Python 專案。這是一種簡單而強大的方式來了解 API 如何在現實應用程式中運作。


?專案 2:GitHub 拉取請求追蹤器

現在,讓我們建立一個 GitHub Pull Request (PR) 追蹤器。該專案利用 GitHub API 來獲取有關特定儲存庫的拉取請求的詳細資訊。我們將過濾資料以提取 PR 建立者的使用者名,計算每個建立者建立的 PR 數量,並顯示此資訊。

工作原理:

  • 此腳本向 GitHub API 發出 HTTP GET 請求,以取得儲存庫的拉取請求詳細資訊。
  • 它解析 JSON 回應以提取 PR 創建者的使用者名稱。
  • 這些使用者名稱儲存在字典中,並包含他們創建的 PR 數量。
  • 程式輸出字典和 PR 創建者的詳細列表及其各自的計數。

逐步說明:

  • 建立一個Python檔:
    • 開啟程式碼編輯器並建立一個名為 gb_tracker.py 的新檔案。
    • 插入以下程式碼:
 import requests

 def get_city_weather(city, api_key):
     city_name = city.lower()
     url = f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={city_name}"

     response = requests.get(url)

     if response.status_code == 200:
         data = response.json()

         description = data['current']['condition']['text']
         temp = data['current']['temp_c']
         wind = data['current']['wind_kph']

         print(f"\nWeather in {city.capitalize()}:")
         print(f"Temperature: {temp}°C")
         print(f"Wind Speed: {wind} Km/hr")
         print(f"Condition: {description.capitalize()}")

     else:
         print(f"{city_name} not found.")

 def main():
     city = input("Enter Your City: ")
     API_KEY = "<Your_API_KEY>"

     get_city_weather(city, API_KEY)

 if __name__ == "__main__":
     main()
登入後複製
登入後複製

執行腳本:

  • 在包含 gb_tracker.py 的資料夾中開啟終端。
  • 使用 python gb_tracker.py 運行腳本。

預期輸出:

當腳本成功運行時,它會從 argoproj/argo-cd 儲存庫獲取拉取請求的詳細資訊。這將顯示以下輸出:

Enter Your City: Ganganagar
Weather in Ganganagar:
Temperature: 24°C
Wind Speed: 10 Km/hr
Condition: Clear
登入後複製
登入後複製

用例:

  • 開發環境:用它來監控儲存庫中的 PR 活動並追蹤貢獻者。
  • 協作:確定頻繁貢獻者及其活動水平,以實現更好的團隊管理。

就是這樣!一個功能腳本,可從 GitHub 獲取即時數據並對其進行處理以獲取真實世界的見解。


?項目 3:用於 Jenkins Pipeline 的 SlackBot

我們的最終專案是一個 gem - 一個整合 Jenkins 和 Slack 以自動產生通知的腳本。此 Python 腳本觸發 Jenkins 管道,監視其狀態,並在管道完成時向您的 Slack 通道發送通知。

工作原理:

  • 觸發管道:腳本先觸發 Jenkins 管道。
  • 監控建置狀態:定期檢查管道的狀態,直到建置完成。
  • 發送 Slack 通知:建置完成後,腳本會使用 Slack 機器人在指定的 Slack 頻道中通知狀態。

逐步說明:

建立 Python 檔案:
在程式碼編輯器中建立一個名為 jenkins-slack-integration.py 的檔案。
插入以下程式碼:

 import requests

 url = 'https://api.github.com/repos/argoproj/argo-cd/pulls'

 response = requests.get(url)

 if response.status_code == 200:
     pull_requests = response.json()

     pr_creators = {}

     for pull in pull_requests:
         creator = pull['user']['login']
         if creator in pr_creators:
             pr_creators[creator] += 1
         else:
             pr_creators[creator] = 1

     print(f"PR Creator counts: {pr_creators}")

     for creator, count in pr_creators.items():
         print(f"Creator: {creator}: {count} PRs")

 else:
     print(f"Failed to make connection. Status Code: {response.status_code}")
登入後複製

設定 Jenkins:

在 Jenkins 中建立一個名為 Jenkins-Python-pipeline 的管道專案。
新增以下 Hello World 管道腳本:

 PR Creator counts: {'dependabot[bot]': 7, 'devopsjedi': 1, 'aali309': 3, 'adriananeci': 1, 'amine7536': 1, 'lf32': 1, 'OpenGuidou': 1, 'ivan-cai': 1, 'surajyadav1108': 2, 'vasilegroza': 1, 'toyamagu-2021': 1, 'dvcanton': 1, 'vivian-xu': 1, 'rahulbollisetty': 1, 'blakepettersson': 1, 'dacofr': 1, 'mrysavy': 1, 'damsien': 1, 'lsq645599166': 1, 'jpbelangerupgrade': 1, 'Aaron-9900': 1}
 Creator: dependabot[bot]: 7 PRs
 Creator: devopsjedi: 1 PRs
 Creator: aali309: 3 PRs
 Creator: adriananeci: 1 PRs
 Creator: amine7536: 1 PRs
 Creator: lf32: 1 PRs
 Creator: OpenGuidou: 1 PRs
 Creator: ivan-cai: 1 PRs
 Creator: surajyadav1108: 2 PRs
 Creator: vasilegroza: 1 PRs
 Creator: toyamagu-2021: 1 PRs
 Creator: dvcanton: 1 PRs
 Creator: vivian-xu: 1 PRs
 Creator: rahulbollisetty: 1 PRs
 Creator: blakepettersson: 1 PRs
 Creator: dacofr: 1 PRs
 Creator: mrysavy: 1 PRs
 Creator: damsien: 1 PRs
 Creator: lsq645599166: 1 PRs
 Creator: jpbelangerupgrade: 1 PRs
 Creator: Aaron-9900: 1 PRs
 # The details will vary accroding to the time when you run the script.
登入後複製

產生 Jenkins API 令牌:

  • 前往您的 Jenkins 使用者設定。

ython Projects to Kickstart Python Learning

  • 建立一個新令牌並複製它。

ython Projects to Kickstart Python Learning

  • 替換 在帶有此標記的腳本中。

設定 Slack:

  • 建立一個名為#devops-updates 的 Slack 頻道。
  • 創建一個名為 demo 的機器人並邀請其加入頻道。
  • 產生機器人令牌並在腳本中替換為該令牌。

執行腳本:

  • 在運行之前,請確保您已在 #devops-updates 中使用 inform@demo 將機器人新增至 slack 通道。
  • 使用 python jenkins-slack-integration.py 執行腳本。
  • 管道完成後,機器人將在 Slack 通道中發布一條包含管道狀態的消息。

Slack 中的範例輸出:

ython Projects to Kickstart Python Learning

管道已成功構建,狀態:**成功**

這個專案是 Python 如何彌合 CI/CD 工具和通訊平台之間的差距、自動通知並改善協作的絕佳範例。


?結論

恭喜您完成這三個令人興奮的 Python 專案!每個專案都旨在教您如何在現實場景中使用 Python:

  • 天氣程式:向您展示如何使用 API 並處理 JSON 資料來取得和顯示有意義的資訊。
  • GitHub PR Tracker:教您如何與 GitHub 的 API 互動並以結構化格式處理即時資料。
  • SlackBot for Jenkins Pipeline:展示了 Python 自動化 DevOps 任務並透過無縫整合增強團隊溝通的能力。

這些項目只是冰山一角。當您進一步探索時,您將看到 Python 的多功能性如何使其成為任何 DevOps 工程師的必備技能。除了編碼之外,它還可以實現自動化、提高生產力,並彌合複雜工作流程和使用者友好的解決方案之間的差距。

不斷建構、實驗和學習-這就是 Python 和 DevOps 的本質!請記住,掌握程式設計的最好方法就是實踐。

感謝您加入我的旅程!如果您喜歡這個博客,請隨時與您的朋友和其他學習者分享。

?如需了解更多資訊博客,請在 Hashnode、X(Twitter) 和 LinkedIn 上關注我。

到此為止,祝您編碼愉快! !

快樂學習! ?

以上是ython 專案啟動 Python 學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板