Bonjour Forge Stats¶
Objectif : premier contact avec le module opt-in forge-mvc-stats.
Ce que vous allez apprendre : Forge Stats enregistre des événements génériques
(un nom, un libellé, une catégorie, des métadonnées) dans une table SQL.
make_event crée un événement ; STATS_EVENTS_TABLE / STATS_EVENTS_COLUMNS
décrivent le stockage.
Premier palier du niveau débutant de la progression stats
(vue d'ensemble des starters).
Module opt-in
Ce starter suppose forge-mvc-stats installé (palier « Installation »). Module à
SQL visible : aucun ORM.
Ce que ce starter montre¶
- une route texte de premier contact (
GET /stats-welcome) ; - la table, les colonnes et un événement de démo (
GET /stats-welcome/inspect).
Classes Forge utilisées¶
| Classe / fonction | Rôle dans ce starter | Référence |
|---|---|---|
forge_mvc_stats.make_event |
Créer un événement (nom, libellé, catégorie, métadonnées). | Stats |
forge_mvc_stats.STATS_EVENTS_TABLE / STATS_EVENTS_COLUMNS |
Table et colonnes du stockage. | Stats |
Tester¶
Ouvrez https://localhost:8000/stats-welcome puis /stats-welcome/inspect.
Le contrôleur¶
# mvc/controllers/stats_welcome_controller.py
from core.http.request import Request
from core.http.response import Response
from core.mvc.controller.base_controller import BaseController
from forge_mvc_stats import STATS_EVENTS_COLUMNS, STATS_EVENTS_TABLE, make_event
class StatsWelcomeController(BaseController):
@staticmethod
def index(request: Request) -> Response:
return Response.text("Bonjour Forge Stats")
@staticmethod
def inspect(request: Request) -> Response:
event = make_event("page_view", "Vue de page", "navigation", {"path": "/"})
return Response.json({
"table": STATS_EVENTS_TABLE,
"columns": list(STATS_EVENTS_COLUMNS),
"demo_event": {
"name": event.name,
"label": event.label,
"category": event.category,
"metadata": event.metadata,
},
})
Comprendre ce code¶
- Un événement est générique : un nom, un libellé, une catégorie, et des
métadonnées libres (un dict), pas de table par type d'événement. - Le stockage est explicite (
STATS_EVENTS_TABLE, colonnes) : Forge Stats est à
SQL visible, sans ORM. make_eventvalide à la construction (le nom doit être valide).
La route¶
Dans mvc/routes.py, ajoutez l'import en tête de fichier et les routes dans le groupe public.
# mvc/routes.py
from mvc.controllers.stats_welcome_controller import StatsWelcomeController
with router.group("", public=True) as public:
public.add("GET", "/stats-welcome", StatsWelcomeController.index, name="stats_welcome_index")
public.add("GET", "/stats-welcome/inspect", StatsWelcomeController.inspect, name="stats_welcome_inspect")
À retenir¶
- Forge Stats trace des événements génériques dans une table.
- Nom + libellé + catégorie + métadonnées (dict).
- SQL visible, aucun ORM.
Après ce starter¶
Premier contact établi. La suite : la brique « nom d'événement ».