Cycle HTTP
Le traitement d'une requête dans Forge suit toujours le même chemin.
Navigateur
Envoie une requête HTTP : GET /welcome/cycle HTTP/1.1
app.py — Application
Reçoit la connexion TCP, parse les en-têtes, crée l'objet Request.
mvc/routes.py — Routeur
Cherche la route correspondant à GET /welcome/cycle et résout le handler.
WelcomeController.cycle — Vous êtes ici
Reçoit la requête, calcule le contexte, appelle BaseController.render(...).
View — Template Jinja2
Le contrôleur demande le rendu du template welcome/cycle.html. Jinja2 fusionne le template avec le contexte et produit le HTML final.
mvc/views/welcome/cycle.html
Response HTML — Navigateur
Forge envoie : HTTP/1.1 200 OK Content-Type: text/html. Le navigateur affiche la page.
Cycle HTML complet
Request → Router → Controller → View → Response HTML
La View est le template HTML/Jinja2 que le contrôleur demande de rendre. C'est elle qui produit le corps de la réponse envoyée au navigateur.
Cycle JSON (sans View)
Request → Router → Controller → Response JSON
Quand le contrôleur retourne un JSONResponse, il n'y a pas de View. Le contrôleur construit directement la réponse.
Code correspondant dans mvc/routes.py
with router.group("", public=True) as pub:
pub.add("GET", "/welcome/cycle", WelcomeController.cycle, name="welcome_cycle")