Agbodja.files.wordpress.com



######################################################################################################## Programme permettant de crér une fenetre Tkinter avec des un titre,# des zones de saisies, des boutons mais aussi# de se connecter à un web service et de# faire remonter des données météorologiques qui seront exploitées,# converties et affichés dans la fenetre Tkinter # Auteur : kossivijunior@yahoo.fr# Date : 2/1/2019# Version : 1.0######################################################################################################### importation des modules nécessaires pour notre programme# la bibliothèque de Tkinter, la bibliothèque permettant# d'afficher des messagesbox dans une fenetre tkinte # et le module request qui va permettre d'aller envoyer# des requetes à l'API dans le but d'obtenir les données# météorologiques nécéssairesfrom tkinter import *from tkinter import messagebox# Pour pouvoir import la module requests il faut d'abord# les télécharger avec "pip install requests" dans le CMD de Windows import requestsdef meteo(ville) : url = addresse_api + str(ville) print(url) # on essaye d'éxécuter le bloc de code suivant try : # on utilise ici le protocole json # pour récupérer les valeurs que # nous a retourner l'API dans des # variables correpondants à différentes # données météorologiques json_data = requests.get(url).json() data_temps = json_data['weather'][0]['main'] data_desc = json_data['weather'][0]['description'] data_temp_kelvin = json_data['main']['temp'] data_humidite = json_data['main']['humidity'] data_vent_mph = json_data['wind']['speed'] # si on n'arrive pas à faire remonter les donnés, cela # veut dire que le nom de la ville n'est pas # bonne donc affiche on affiche une messagebox # pour informer l'utilisateur qu'il y a une erreur except : messagebox.showinfo("Erreur", "Cette ville n'existe pas") # mais si on réussit à éxécuter ce qu'il y a à l'intérieur # du try alors on continue à éxécuter le reste du code else: # conversion de la vitesse du vent de milles per hour en kilomètres par heure et arrondie à 1 chiffre après la virgule data_vent_kmh = round((data_vent_mph*1.57),1) # convertion de la température de dégré kelvin en dégré celcius et on arrondie à 1 chiffre après la virgule data_temp_celcius = round((data_temp_kelvin-273.15),1) # on affiche la description du temps actuel de la ville dans la fenetre Tkinter LabelZone3=Label(Fenetre, text='Temps actuel : '+ str(data_temps) + ' , ' + str(data_desc),font=("arial",12)) LabelZone3.pack(pady=5) #on affiche la valeur actuelle de l'humidité actuelle de la ville dans la fenetre Tkinter LabelZone5=Label(Fenetre, text='Humidité (%) : '+ str(data_humidite),font=("arial",12)) LabelZone5.pack(pady=15) # on affiche la température actuelle dans la ville dans la fenetre Tkinter LabelZone4=Label(Fenetre, text='Température (°C) : '+ str(data_temp_celcius),font=("arial",12)) LabelZone4.pack(pady=10) # on afiiche la vitesse du vent actuelle dans la ville dans la fenetre Tkinter LabelZone5=Label(Fenetre, text='Vitesse du vent (km/h) : '+ str(data_vent_kmh),font=("arial",12)) LabelZone5.pack(pady=20) #################################################################################################################################### on affecte à une variable addresse_api, le lien de notre api qui contient notre API key# qui est appid=037ea81c003e8f8555ac704354f4b884 et pou faire appel à notre API on devrat# renter le nom d'une ville après &q= et les informations météorologiques de cette ville# nous seront remontéesaddresse_api = ''# on cré une fenêtre Tkinter# dont la taille est 500 pixels * 500 pixels# et le nom : METEOFenetre = Tk()Fenetre.geometry("500x500")Fenetre.title('METEO')# on cré le label titre qui est Météo# on change sa police, son style # on le met en gras et on l'affiche dans# la fenetre TkinterLabelZone1 = Label(Fenetre, text=' Météo ', font=("Segoe Script",22,"bold"))LabelZone1.pack(side = TOP, padx = 20, pady = 20)# on cré le label Nom de la ville# qui indique à l'utilisateur de saisir un nom de villeLabelZone2 = Label(Fenetre, text='Saisissez le nom de la ville', font=("arial",12))LabelZone2.pack(side = TOP, padx = 0, pady = 10)# Ensuite on cré une zone de saisie# dont le texte commence à gauche# et dont la taille est 25 caractères# pour l'utilisateur final# qui devrat écrire le nom de sa ville# et que l'on affiche en dessous de# météo saisir=StringVar()saisir.set("") saisie=Entry(textvariable=saisir, justify = LEFT, width = 25) saisie.pack() # on cré un bouton ok que l'utilisteur# après avoir écrit le nom de sa ville BoutonOK = Button(Fenetre, text='OK', command=Fenetre.quit)BoutonOK.pack(side=TOP, padx=5, pady=20)# on cré aussi un bouton quitter qui# permettrat de quitter la fenêtre Tkinter# à la fin du programmeBoutonQuitter = Button(Fenetre, text='Quitter', command=Fenetre.destroy)BoutonQuitter.pack(side=BOTTOM, padx=10, pady=10)# on met le code en pause pour# laisser le temps à l'utilisateur# de saisir le nom de sa villeFenetre.mainloop()# Ensuite après que l'utilisateur ait saisie# le nom de sa ville, on récupère la valeur# de la zone de saisie dans une variable villeville = saisie.get()# on concatène la valeur récupérer dans# la zone de saisie avec l'url de l'API# pour pouvoir avoir un url complet et# ainsi pouvoir faire appel à notre APImeteo(ville) ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download