首页 >后端开发 >Python教程 >ython 项目启动 Python 学习

ython 项目启动 Python 学习

Patricia Arquette
Patricia Arquette原创
2024-12-21 06:27:09214浏览

开始使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn