Téléverser les fichiers vers "/"
This commit is contained in:
48
app.py
Normal file
48
app.py
Normal 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
61
index.html
Normal 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>
|
||||
Reference in New Issue
Block a user