49 lines
1.5 KiB
Python
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)
|