Le SQL d'insertion¶
Objectif : voir le SQL d'insertion d'un événement avant de l'exécuter.
Ce que vous allez apprendre : get_track_event_sql retourne l'INSERT paramétré ;
prepare_track_event_values retourne le tuple de valeurs d'un événement (métadonnées
sérialisées en JSON). SQL visible, requête paramétrée (anti-injection).
Premier palier du niveau intermédiaire de la progression stats.
Module opt-in
Ce starter suppose forge-mvc-stats installé (palier « Installation »).
Ce que ce starter montre¶
get_track_event_sql()→ l'INSERT;prepare_track_event_values(event)→ le tuple de valeurs ;- une transformation pure (on montre, on n'exécute pas).
Classes Forge utilisées¶
| Classe / fonction | Rôle dans ce starter | Référence |
|---|---|---|
forge_mvc_stats.get_track_event_sql |
L'INSERT paramétré. |
Stats |
forge_mvc_stats.prepare_track_event_values |
Le tuple de valeurs d'un événement. | Stats |
Tester¶
Ouvrez https://localhost:8000/stats-track-sql : l'INSERT et ses valeurs.
Le contrôleur¶
# mvc/controllers/stats_track_sql_controller.py
from forge_mvc_stats import get_track_event_sql, make_event, prepare_track_event_values
event = make_event("page_view", "Vue de page", "navigation", {"path": "/"})
sql = get_track_event_sql()
values = prepare_track_event_values(event) # ('page_view', 'Vue de page', 'navigation', '{"path": "/"}')
Comprendre ce code¶
- Le SQL est paramétré (
?) : les valeurs ne sont jamais concaténées (anti-injection). - Les métadonnées (dict) sont sérialisées en JSON pour tenir dans une colonne texte.
- Voir le SQL avant de l'exécuter rend le comportement transparent (SQL visible).
À retenir¶
get_track_event_sql+prepare_track_event_values= SQL + valeurs, sans exécuter.- Requête paramétrée, métadonnées en JSON.
- Transparence : on lit ce qui sera écrit.
Après ce starter¶
La suite : exécuter cet enregistrement.