Aller au contenu

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

forge run

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_event valide à 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 ».

Nom d'événement