Téléverser les fichiers vers "/"

This commit is contained in:
2025-11-14 15:25:38 +00:00
parent de714a2c30
commit 7e326796cf
2 changed files with 109 additions and 0 deletions

48
app.py Normal file
View File

@@ -0,0 +1,48 @@
from flask import Flask, jsonify
import psutil
# Crée l'application web
app = Flask(__name__)
@app.route("/api/data")
def get_system_data():
"""Cette fonction est appelée quand le navigateur visite /api/data"""
# 1. Obtenir CPU et RAM
cpu = psutil.cpu_percent(interval=None)
ram = psutil.virtual_memory().percent
# 2. Obtenir les températures
temps_data = psutil.sensors_temperatures()
# 'temps_data' est complexe. On cherche la température principale.
# Souvent, elle est dans 'coretemp' ou 'k10temp'.
current_temp = None
if 'coretemp' in temps_data:
# Prend la première température "Package"
current_temp = temps_data['coretemp'][0].current
elif 'k10temp' in temps_data:
# Pour les processeurs AMD
current_temp = temps_data['k10temp'][0].current
else:
current_temp = "N/A" # Non trouvé
# 3. Renvoyer les données au format JSON
return jsonify(
cpu_percent=cpu,
ram_percent=ram,
cpu_temp=current_temp
)
@app.route("/")
def home():
"""Cette fonction sert la page web principale (le frontend)"""
# On dit à Flask de renvoyer le fichier 'index.html'
# Ce fichier doit se trouver dans un dossier 'static'
return app.send_static_file('index.html')
if __name__ == "__main__":
# Lance le serveur sur http://127.0.0.1:5000
print("Serveur lancé ! Ouvrez http://127.0.0.1:5000 dans votre navigateur.")
app.run(debug=True, port=5000)

61
index.html Normal file
View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Moniteur Système</title>
<style>
/* Un peu de style pour que ce soit joli */
body { font-family: sans-serif; background: #222; color: #eee; }
.container { max-width: 600px; margin: 40px auto; padding: 20px; background: #333; border-radius: 8px; }
.stat { margin-bottom: 15px; font-size: 1.5em; }
.label { display: inline-block; width: 150px; color: #aaa; }
.value { color: #fff; font-weight: bold; }
</style>
</head>
<body>
<div class="container">
<h1>Statut du Système</h1>
<div class="stat">
<span class="label">Température CPU:</span>
<span class="value" id="temp">-- °C</span>
</div>
<div class="stat">
<span class="label">Usage CPU:</span>
<span class="value" id="cpu">-- %</span>
</div>
<div class="stat">
<span class="label">Usage RAM:</span>
<span class="value" id="ram">-- %</span>
</div>
</div>
<script>
// Ce script s'exécute dans le navigateur
async function updateData() {
try {
// 1. Appelle notre backend Python
const response = await fetch('/api/data');
const data = await response.json();
// 2. Met à jour les valeurs dans le HTML
document.getElementById('temp').innerText = data.cpu_temp.toFixed(1) + " °C";
document.getElementById('cpu').innerText = data.cpu_percent.toFixed(1) + " %";
document.getElementById('ram').innerText = data.ram_percent.toFixed(1) + " %";
} catch (error) {
console.error("Erreur de rafraîchissement:", error);
}
}
// Met à jour les données toutes les 2 secondes (2000 ms)
setInterval(updateData, 2000);
// Lance une première fois au chargement
updateData();
</script>
</body>
</html>