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

ython 项目启动 Python 学习

Dec 21, 2024 am 06:27 AM

开始使用 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

热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

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1653
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1251
29
C# 教程
1224
24
Python vs.C:申请和用例 Python vs.C:申请和用例 Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

Python:游戏,Guis等 Python:游戏,Guis等 Apr 13, 2025 am 12:14 AM

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

您可以在2小时内学到多少python? 您可以在2小时内学到多少python? Apr 09, 2025 pm 04:33 PM

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

2小时的Python计划:一种现实的方法 2小时的Python计划:一种现实的方法 Apr 11, 2025 am 12:04 AM

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python与C:学习曲线和易用性 Python与C:学习曲线和易用性 Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python:探索其主要应用程序 Python:探索其主要应用程序 Apr 10, 2025 am 09:41 AM

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

Python和时间:充分利用您的学习时间 Python和时间:充分利用您的学习时间 Apr 14, 2025 am 12:02 AM

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python:自动化,脚本和任务管理 Python:自动化,脚本和任务管理 Apr 16, 2025 am 12:14 AM

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

See all articles