Maison >développement back-end >Tutoriel Python >Projets ython pour lancer l'apprentissage de Python

Projets ython pour lancer l'apprentissage de Python

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 06:27:09272parcourir

Démarrez avec l'automatisation DevOps à l'aide de scripts Python

? Introduction

Bienvenue dans le monde de DevOps et Python
C’est un mythe répandu selon lequel les ingénieurs DevOps ne codent pas, mais la vérité est loin d’être le cas. Les ingénieurs DevOps s'appuient souvent sur des compétences en programmation pour automatiser les processus, gérer l'infrastructure et simplifier les flux de travail. Python et Go sont deux des langages les plus appréciés dans le monde DevOps en raison de leur polyvalence et de leur facilité d'utilisation.

Aujourd'hui, nous allons nous lancer dans un voyage passionnant pour créer trois projets Python qui non seulement vous présenteront l'essentiel de la programmation, mais vous aideront également à créer des applications significatives et pratiques.

Voici ce que nous allons explorer :

  • Programme météo — Un programme qui prend le nom d'une ville comme entrée de l'utilisateur et affiche sa météo actuelle. (Nous utiliserons WeatherAPI pour récupérer des données au format JSON – cela semble excitant, n'est-ce pas ?)
  • GitHub Pull Request Tracker — Un projet en temps réel pour répertorier les utilisateurs qui ont effectué des demandes d'extraction vers un référentiel GitHub à l'aide de l'API de GitHub.
  • SlackBot pour Jenkins Pipeline — Une merveille de projet qui déclenche un pipeline Jenkins et transmet son statut à votre chaîne Slack via un SlackBot personnalisé.

Alors, êtes-vous prêt à vous lancer dans ce voyage ? Commençons !


? Pré-requis

Avant de nous lancer dans le codage, assurons-nous que vous disposez de tout ce dont vous avez besoin pour commencer. Ces projets sont adaptés aux débutants, mais la mise en place des outils et compétences suivants rendra le processus plus fluide :

1. Connaissances de base de Python
Comprendre les variables, les fonctions, les boucles et comment travailler avec les bibliothèques sera utile. Ne vous inquiétez pas si vous êtes nouveau : ces projets renforceront votre apprentissage !

2. Environnement Python

Assurez-vous que Python est installé sur votre système. Vous pouvez le télécharger depuis python.org. Un éditeur de code comme VS Code ou PyCharm est également recommandé.

3. Principes fondamentaux de l'API

Vous travaillerez avec des API dans les trois projets. La connaissance de la création de requêtes HTTP et de la gestion des réponses JSON est un bonus, mais je vous guiderai à travers chaque étape.

4. Outils à installer

  • demande une bibliothèque pour effectuer des appels API. Installez-le à l'aide des requêtes d'installation pip.
  • Identifiants de l'API Slack et configuration pour le troisième projet. Ne t'inquiète pas; Je vous fournirai des instructions détaillées une fois sur place.
  • Compte GitHub pour le deuxième projet et accès à Jenkins pour le troisième projet.

Une fois que vous êtes prêt avec ces pré-requis, nous pouvons nous lancer dans notre premier projet : créer un programme météo !


? Projet 1 : Programme météo

Plongeons dans notre premier projet Python : un programme météo. Ce script simple mais pratique prendra le nom d'une ville comme entrée de l'utilisateur et affichera sa météo actuelle. Pour y parvenir, nous utiliserons WeatherAPI pour récupérer des données météorologiques en temps réel au format JSON et les afficher de manière conviviale.

Comment ça marche :

  • Le script invite l'utilisateur à saisir le nom d'une ville.
  • À l'aide de la WeatherAPI et d'une clé API, le script récupère les données météorologiques pour la ville spécifiée.
  • La réponse JSON de l'API est analysée pour extraire des informations telles que la température, la vitesse du vent et les conditions météorologiques.
  • Les résultats sont affichés dans un format soigné et lisible.

Instructions étape par étape :

  • Créer un fichier Python :
    • Ouvrez votre éditeur de code préféré (VS Code ou PyCharm est recommandé) et créez un nouveau fichier nommé Weather.py.
    • Insérez le code suivant :
 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()
  • Configurez votre clé API :

    • Visitez WeatherAPI et créez un compte gratuit.
    • Après vous être connecté, générez votre clé API en sélectionnant le forfait gratuit.
  • Copiez la clé API et remplacez-la dans le code par la clé réelle.

  • Exécutez le script :

    • Ouvrez un terminal dans le dossier où vous avez enregistré Weather.py.
    • Exécutez le script en utilisant python Weather.py.
    • Entrez le nom d'une ville (par exemple, « Ganganagar ») lorsque vous y êtes invité. Le script affichera les conditions météorologiques actuelles pour cette ville.

Exemple de sortie :

Enter Your City: Ganganagar
Weather in Ganganagar:
Temperature: 24°C
Wind Speed: 10 Km/hr
Condition: Clear

Et c'est tout ! Vous avez créé avec succès votre premier projet Python. Il s'agit d'un moyen simple mais puissant de voir comment les API fonctionnent dans des applications réelles.


? Projet 2 : GitHub Pull Request Tracker

Maintenant, créons un tracker GitHub Pull Request (PR). Ce projet exploite l'API GitHub pour récupérer des détails sur les demandes d'extraction pour un référentiel spécifique. Nous filtrerons les données pour extraire les noms d'utilisateur des créateurs de relations publiques, compter le nombre de relations publiques réalisées par chaque créateur et afficher ces informations.

Comment ça marche :

  • Le script envoie une requête HTTP GET à l'API GitHub pour obtenir les détails de la demande d'extraction d'un référentiel.
  • Il analyse la réponse JSON pour extraire les noms d'utilisateur des créateurs de relations publiques.
  • Ces noms d'utilisateur sont stockés dans un dictionnaire, avec le nombre de PR qu'ils ont créés.
  • Le programme génère le dictionnaire et une liste détaillée des créateurs de relations publiques avec leurs décomptes respectifs.

Instructions étape par étape :

  • Créer un fichier Python :
    • Ouvrez votre éditeur de code et créez un nouveau fichier nommé gb_tracker.py.
    • Insérez le code suivant :
 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()

Exécutez le script :

  • Ouvrez un terminal dans le dossier contenant gb_tracker.py.
  • Exécutez le script en utilisant python gb_tracker.py.

Résultat attendu :

Lorsque le script s'exécute avec succès, il récupère les détails des demandes d'extraction du référentiel argoproj/argo-cd. Cela présentera le résultat suivant :

Enter Your City: Ganganagar
Weather in Ganganagar:
Temperature: 24°C
Wind Speed: 10 Km/hr
Condition: Clear

Cas d'utilisation :

  • Environnement de développement : utilisez-le pour surveiller l'activité des relations publiques dans un référentiel et suivre les contributeurs.
  • Collaboration : Identifiez les contributeurs fréquents et leur niveau d'activité pour une meilleure gestion d'équipe.

Et voilà ! Un script fonctionnel qui récupère les données en direct de GitHub et les traite pour obtenir des informations réelles.


? Projet 3 : SlackBot pour Jenkins Pipeline

Notre projet final est un joyau : un script qui intègre Jenkins et Slack pour automatiser les notifications de build. Ce script Python déclenche un pipeline Jenkins, surveille son état et envoie une notification à votre chaîne Slack lorsque le pipeline est terminé.

Comment ça marche :

  • Trigger Pipeline : Le script démarre par le déclenchement d'un pipeline Jenkins.
  • Surveiller l'état de la construction : il vérifie l'état du pipeline à intervalles réguliers jusqu'à ce que la construction soit terminée.
  • Envoyer une notification Slack : une fois la construction terminée, le script utilise un robot Slack pour notifier l'état dans un canal Slack désigné.

Instructions étape par étape :

Créer un fichier Python :
Créez un fichier nommé jenkins-slack-integration.py dans votre éditeur de code.
Insérez le code suivant :

 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}")

Configurer Jenkins :

Créez un projet de pipeline dans Jenkins nommé Jenkins-Python-pipeline.
Ajoutez le script de pipeline Hello World suivant :

 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.

Générer un jeton API Jenkins :

  • Accédez à vos paramètres utilisateur Jenkins.

ython Projects to Kickstart Python Learning

  • Créez un nouveau jeton et copiez-le.

ython Projects to Kickstart Python Learning

  • Remplacez dans le script avec ce jeton.

Configurer Slack :

  • Créez une chaîne Slack nommée #devops-updates.
  • Créez un bot nommé demo et invitez-le sur la chaîne.
  • Générez un jeton de bot et remplacez-le dans le script par ce jeton.

Exécutez le script :

  • Avant d'exécuter, assurez-vous d'avoir ajouté le bot dans le canal Slack en utilisant invite@demo dans les #devops-updates.
  • Exécutez le script en utilisant python jenkins-slack-integration.py.
  • Une fois le pipeline terminé, le bot publiera un message dans le canal Slack avec l'état du pipeline.

Exemple de sortie dans Slack :

ython Projects to Kickstart Python Learning

Pipeline construit avec succès avec le statut : **SUCCÈS**

Ce projet est un exemple fantastique de la façon dont Python peut combler le fossé entre les outils CI/CD et les plateformes de communication, en automatisant les notifications et en améliorant la collaboration.


? Conclusion

Félicitations pour avoir terminé ces trois projets Python passionnants ! Chaque projet a été conçu pour vous apprendre comment Python peut être utilisé dans des scénarios réels :

  • Programme météo : vous a montré comment utiliser les API et gérer les données JSON pour récupérer et afficher des informations significatives.
  • GitHub PR Tracker : vous a appris à interagir avec l'API de GitHub et à travailler avec des données en direct dans un format structuré.
  • SlackBot pour Jenkins Pipeline : démonstration de la puissance de Python pour automatiser les tâches DevOps et améliorer la communication d'équipe avec des intégrations transparentes.

Ces projets ne sont que la pointe de l'iceberg. Au fur et à mesure de votre exploration, vous verrez comment la polyvalence de Python en fait une compétence indispensable pour tout ingénieur DevOps. Au-delà du codage, il permet l'automatisation, améliore la productivité et comble le fossé entre les flux de travail complexes et les solutions conviviales.

Continuez à construire, à expérimenter et à apprendre : c'est l'essence même de Python et de DevOps ! N'oubliez pas que la meilleure façon de maîtriser la programmation est de la faire.

Merci de m'avoir rejoint dans ce voyage ! Si vous avez apprécié ce blog, n'hésitez pas à le partager avec vos amis et camarades apprenants.

? Pour un blog plus informatif, suivez-moi sur Hashnode, X(Twitter) et LinkedIn.

En attendant, bon codage !!

Bon apprentissage ! ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn