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 forge_mvc_stats import STATS_EVENTS_COLUMNS, STATS_EVENTS_TABLE, make_event
class StatsWelcomeController(BaseController):
@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, "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).
À 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 ».