meteo_3eme_seance
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
meteo_3eme_seance [2025/06/22 11:14] – admin | meteo_3eme_seance [2025/06/23 07:15] (Version actuelle) – [Génération simple d’une page HTML avec une f-string] admin | ||
---|---|---|---|
Ligne 191: | Ligne 191: | ||
humidex = calculer_humidex(temperature, | humidex = calculer_humidex(temperature, | ||
date_heure = recuperer_date_heure() | date_heure = recuperer_date_heure() | ||
+ | </ | ||
+ | |||
+ | nous mettons en œuvre **la logique métier définie dans notre fichier capteur.py** : | ||
+ | |||
+ | * **lire_donnees_capteur()** : interroge le capteur DHT22 et renvoie les valeurs d’humidité et de température. | ||
+ | * **calculer_point_de_rosee()** : calcule le point à partir duquel l’humidité de l’air commence à se condenser. | ||
+ | * **calculer_humidex()** : estime la température ressentie selon l’humidité ambiante. | ||
+ | * **recuperer_date_heure()** : renvoie l’heure exacte de la mesure. | ||
+ | |||
+ | ===== Génération simple d’une page HTML avec une f-string ===== | ||
+ | |||
+ | < | ||
+ | html = f""" | ||
+ | < | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | """ | ||
+ | else: | ||
+ | html = "< | ||
+ | </ | ||
+ | |||
+ | Nous créons **une chaîne de caractères contenant du HTML**, dans laquelle nous insérons directement **les valeurs des variables Python** (température, | ||
+ | |||
+ | < | ||
+ | **La balise h1** sert à afficher titre de niveau 1. | ||
+ | |||
+ | **La balise ul** sert à afficher une liste à puce, **les balises li** correspondent aux éléments de la liste. | ||
+ | |||
+ | **La balise p** sert à afficher un paragraphe. | ||
+ | </ | ||
+ | ====Pourquoi le f devant la chaîne ?==== | ||
+ | |||
+ | Le f signifie que c’est une **f-string** (ou formatted string literal en anglais). | ||
+ | |||
+ | Cela permet d’écrire **des variables à l’intérieur de la chaîne** entre des accolades {}. | ||
+ | |||
+ | C’est une **méthode claire et moderne pour mélanger texte et variables** dans une même ligne. | ||
+ | |||
+ | ====Et si la lecture échoue ?==== | ||
+ | |||
+ | < | ||
+ | else: | ||
+ | html = "< | ||
+ | </ | ||
+ | |||
+ | Ce code gère le cas où le capteur ne renvoie pas de valeurs valides. Dans ce cas, on prépare un message simple à afficher sur la page web. | ||
+ | |||
+ | ====Démarrage de l' | ||
+ | |||
+ | < | ||
+ | return render_template_string(html) | ||
+ | </ | ||
+ | |||
+ | Ce code indique à Flask d' | ||
+ | |||
+ | < | ||
+ | if __name__ == ' | ||
+ | app.run(host=' | ||
+ | </ | ||
+ | |||
+ | Ce code permet de lancer l' | ||
+ | * **host=' | ||
+ | * **port=5000** : port utilisé pour acceder au site. | ||
+ | |||
+ | Page app.py : | ||
+ | |||
+ | < | ||
+ | # | ||
+ | from flask import Flask, render_template_string | ||
+ | from capteur import ( | ||
+ | lire_donnees_capteur, | ||
+ | calculer_point_de_rosee, | ||
+ | calculer_humidex, | ||
+ | recuperer_date_heure | ||
+ | ) | ||
+ | |||
+ | # Définition de l' | ||
+ | app = Flask(__name__) | ||
+ | |||
+ | @app.route('/' | ||
+ | def index(): | ||
+ | humidity, temperature = lire_donnees_capteur() | ||
+ | if humidity is not None and temperature is not None: | ||
+ | point_de_rosee = calculer_point_de_rosee(temperature, | ||
+ | humidex = calculer_humidex(temperature, | ||
+ | date_heure = recuperer_date_heure() | ||
+ | |||
+ | html = f""" | ||
+ | < | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | """ | ||
+ | else: | ||
+ | html = "< | ||
+ | |||
+ | return render_template_string(html) | ||
+ | |||
+ | if __name__ == ' | ||
+ | app.run(host=' | ||
</ | </ |
meteo_3eme_seance.1750590843.txt.gz · Dernière modification : de admin