ホームページ > バックエンド開発 > Python チュートリアル > Python 学習を開始するための ython プロジェクト

Python 学習を開始するための ython プロジェクト

Patricia Arquette
リリース: 2024-12-21 06:27:09
オリジナル
212 人が閲覧しました

Python スクリプトを使用して DevOps 自動化を始めてみましょう

?導入

DevOps と Python の世界へようこそ
DevOps エンジニアはコーディングをしないというのが一般的な通説ですが、真実は全く異なります。 DevOps エンジニアは、プロセスを自動化し、インフラストラクチャを管理し、ワークフローを簡素化するためにプログラミング スキルに頼ることがよくあります。 Python と Go は、その多用途性と使いやすさにより、DevOps の世界で最も好まれている 2 つの言語です。

今日は、プログラミングの核心を紹介するだけでなく、有意義で実用的なアプリケーションの構築にも役立つ 3 つの Python プロジェクトを作成するエキサイティングな旅に乗り出します。

ここで検討する内容は次のとおりです:

  • 天気プログラム — ユーザーから都市名を入力して、現在の天気を表示するプログラム。 (WeatherAPI を使用して、JSON 形式でデータを取得します。面白そうですよね?)
  • GitHub Pull Request Tracker — GitHub の API を使用して GitHub リポジトリにプル リクエストを行ったユーザーをリストするリアルタイム プロジェクトです。
  • Jenkins Pipeline 用 SlackBot — Jenkins パイプラインをトリガーし、そのステータスをカスタム SlackBot 経由で Slack チャネルに配信する驚異のプロジェクトです。

それで、この旅に飛び込む準備はできていますか?始めましょう!


?前提条件

コーディングに入る前に、開始するために必要なものがすべて揃っていることを確認しましょう。これらのプロジェクトは初心者向けですが、次のツールとスキルを用意しておくとプロセスがよりスムーズになります:

1. Python の基本知識
変数、関数、ループ、およびライブラリの操作方法を理解すると役立ちます。初めての方でも心配する必要はありません。これらのプロジェクトはあなたの学習を強化します!

2. Python 環境

Python がシステムにインストールされていることを確認してください。 python.org からダウンロードできます。 VS Code や PyCharm などのコード エディターも推奨されます。

3. API の基礎

3 つのプロジェクトすべてで API を使用します。 HTTP リクエストの作成と JSON レスポンスの処理に慣れているとさらに役立ちますが、各ステップについて説明します。

4.インストールするツール

  • API 呼び出しを行うためのリクエスト ライブラリ。 pip install リクエストを使用してインストールします。
  • Slack API 認証情報と 3 番目のプロジェクトのセットアップ。心配しないで;到着したら詳しい手順をご案内します。
  • 2 番目のプロジェクトの GitHub アカウントと 3 番目のプロジェクトの Jenkins へのアクセス。

これらの前提条件の準備ができたら、最初のプロジェクト、天気プログラムの構築に取りかかることができます!


?プロジェクト 1: 天気プログラム

最初の Python プロジェクトである天気プログラムを見てみましょう。このシンプルかつ実用的なスクリプトは、ユーザーからの入力として都市名を受け取り、現在の天気を表示します。これを実現するために、WeatherAPI を使用してリアルタイムの気象データを 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 を使用してスクリプトを実行します。
    • プロンプトが表示されたら、都市名 (例: 「ガンガナガル」) を入力します。スクリプトは、その都市の現在の気象状況を表示します。

出力例:

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) Tracker を構築しましょう。このプロジェクトは、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 パイプライン用の 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 の Invitation@demo を使用して、Slack チャネルにボットを追加していることを確認してください。
  • Python jenkins-slack-integration.py を使用してスクリプトを実行します。
  • パイプラインが完了すると、ボットはパイプラインのステータスを示すメッセージを Slack チャネルに投稿します。

Slack での出力例:

ython Projects to Kickstart Python Learning

パイプラインはステータス: **成功**で正常に構築されました

このプロジェクトは、Python が CI/CD ツールと通信プラットフォームの間のギャップをどのように埋め、通知を自動化し、コラボレーションを改善できるかを示す素晴らしい例です。


?結論

これら 3 つのエキサイティングな Python プロジェクトの完了、おめでとうございます!各プロジェクトは、実際のシナリオで Python を使用する方法を教えるように設計されています。

  • 天気プログラム: API を使用し、JSON データを処理して意味のある情報を取得して表示する方法を説明しました。
  • GitHub PR Tracker: GitHub の API を操作し、構造化された形式でライブ データを操作する方法を説明しました。
  • Jenkins Pipeline 用 SlackBot: DevOps タスクを自動化し、シームレスな統合によりチームのコミュニケーションを強化する Python の能力を実証しました。

これらのプロジェクトは氷山の一角にすぎません。さらに詳しく調べていくと、Python の多用途性により、Python が DevOps エンジニアにとって必須のスキルとなっていることがわかります。コーディングを超えて、自動化が可能になり、生産性が向上し、複雑なワークフローとユーザーフレンドリーなソリューションの間のギャップを埋めます。

構築、実験、学習を続けてください。これが Python と DevOps の本質です。プログラミングをマスターする最良の方法は実際にやってみることだということを忘れないでください。

この旅にご参加いただきありがとうございます!このブログを気に入っていただけましたら、お気軽にお友達や学習仲間と共有してください。

?さらに有益なブログについては、Hashnode、X(Twitter)、LinkedIn でフォローしてください。

それまで、ハッピーコーディング!!

楽しく学習してください! ?

以上がPython 学習を開始するための ython プロジェクトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート