Files
LinuxController/app.py

49 lines
1.5 KiB
Python

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)