Nom d'événement¶
Objectif : comprendre le nom d'événement et comment Forge le normalise et le valide.
Ce que vous allez apprendre : un nom est un identifiant snake_case.
normalize_event_name le met en forme (« Page View » → page_view) ;
validate_event_name refuse les caractères interdits (un point, par exemple).
Deuxième palier du niveau débutant de la progression stats.
Module opt-in
Ce starter suppose forge-mvc-stats installé (palier « Installation »).
Ce que ce starter montre¶
normalize_event_name(name)→ formesnake_case;validate_event_name(name)→ validité (ouStatsEventError) ;- une transformation pure.
Classes Forge utilisées¶
| Classe / fonction | Rôle dans ce starter | Référence |
|---|---|---|
forge_mvc_stats.normalize_event_name |
Normaliser un nom d'événement. | Stats |
forge_mvc_stats.validate_event_name |
Refuser un nom invalide. | Stats |
Tester¶
Ouvrez https://localhost:8000/stats-event?name=Page View → page_view.
Le contrôleur¶
# mvc/controllers/stats_event_controller.py
from forge_mvc_stats import StatsEventError, normalize_event_name, validate_event_name
def _event_view(raw: str) -> dict:
try:
normalized = normalize_event_name(raw)
validate_event_name(raw)
return {"input": raw, "normalized": normalized, "valid": True, "error": None}
except StatsEventError as exc:
return {"input": raw, "normalized": None, "valid": False, "error": str(exc)}
Comprendre ce code¶
- Le nom
snake_caseest l'identifiant stable de l'événement ; le libellé reste libre pour l'affichage. - Normaliser avant de comparer/agréger évite de disperser un même événement sous plusieurs noms.
- Un caractère interdit (point, accent) lève
StatsEventError.
À retenir¶
- Un nom d'événement est un identifiant
snake_casenormalisé. - Cohérence des noms = agrégats fiables.
- Normaliser puis valider.
Après ce starter¶
La suite : le schéma SQL de la table des événements.