[Vendredi 16 Janvier 2026] 1. [Commande du jour] # uvicorn app:app --reload --host 0.0.0.0 --port 8000 ctrl + r = permets de regarder dans l'historique du terminal ctrl + r + uvi = historique de uvicorn (semaine prochaine test avec api ia sur les servs du garage -> on demandera un résumé des infos qu'on lui envoie page de présentation avec une requête get (page)) ----------------------------------------------- MVC (Model View Controller) ^ ^ ^ | | | Ordinateur Dashboard app.py -> /enpoint Utilisateurs ----------------------------------------------- 2. [Echauffement + démarrage à froid ce matin] motif d'architecture logicielle destiné aux interfaces graphiques quoi mettre sur notre portfolio : app p2p / homeserver / un jeu / app agenda météo agenda ajout dans l'app.py pour importer les données de ordinateur.py mise en commentaire pour test/remplacement de def init reload etc dans ordinateur pip install requests (puis pip freeze dans le .txt) ----- 3. [JSON + Display avec local host] test de nouvelle fonction app.get dans app.py return ordi1 (dépréciée dans la partie 4) fonction pour afficher les données de Ordinateur sur une page HTML Affiche sur une page web locale les infos de grabber via la section debug de base : variable déclarée dans une fonction est locale et ne peux pas être accédée par une demande externe si elle est déclarée dehors elle est globale 4. [LE RETOUR DU HTML (JINJA2)] # -> pip install jinja2 jinja2 est un moteur de template HTML/python -> page html avec balises spéciales qui recoivent les données d'appli python (il est possible d'intégrer un espace de virtualisation Python dans VScode) créer un dossier templates dans le dossier grabber (stockage des pages html ex index.html) Dans grabber : (ajout de la collecte de l'addresse mac : ip link | awk '/ether/ {print $2; exit)' Dans app.py : from ordinateur import Ordinateur from fastapi.templating import Jinja2Templates from fastapi import Request as Req from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles templates = Jinja2Templates(directory="templates") @app.get("/ordi1") async def show_info(request: Req): return templates.TemplateResponse("index.html", {"request": request, "ordi": ordi1}) # dans ce contexte request et ordi sont des paramètres qui sont envoyés/appliqués sur la page HTML, en l'occurence "index.html" voir les commentaires dans mon app.py pour plus de clarté, assez chaud d'expliciter le code ici dans