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)