75 lines
2.5 KiB
Markdown
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
|