Notes/2026-01-16.md

75 lines
2.5 KiB
Markdown

[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