Intégration PostHog pour Flask
Cette skill vous aide à ajouter l'analytique PostHog à des applications Flask.
Workflow
Suivez ces étapes dans l'ordre pour compléter l'intégration :
basic-integration-1.0-begin.md- PostHog Setup - Begin ← Commencez icibasic-integration-1.1-edit.md- PostHog Setup - Editbasic-integration-1.2-revise.md- PostHog Setup - Revisebasic-integration-1.3-conclude.md- PostHog Setup - Conclusion
Fichiers de référence
references/EXAMPLE.md- Code du projet exemple Flaskreferences/flask.md- Flask - docsreferences/identify-users.md- Identifier les utilisateurs - docsreferences/basic-integration-1.0-begin.md- PostHog setup - beginreferences/basic-integration-1.1-edit.md- PostHog setup - editreferences/basic-integration-1.2-revise.md- PostHog setup - revisereferences/basic-integration-1.3-conclude.md- PostHog setup - conclusion
Le projet exemple montre le modèle d'implémentation cible. Consultez la documentation pour les détails de l'API.
Principes clés
- Variables d'environnement : Utilisez toujours les variables d'environnement pour les clés PostHog. Ne les codez jamais en dur.
- Changements minimaux : Ajoutez le code PostHog aux côtés des intégrations existantes. Ne remplacez ni ne restructurez le code existant.
- Respectez l'exemple : Votre implémentation doit suivre les modèles du projet exemple aussi fidèlement que possible.
Directives du framework
- Initialisez PostHog globalement dans create_app() en utilisant posthog.api_key et posthog.host (PAS par requête)
- Capturez manuellement les exceptions avec
posthog.capture_exception(e)pour le suivi des erreurs, car Flask possède des gestionnaires d'erreurs intégrés - L'enregistrement des blueprints se fait APRÈS l'initialisation de PostHog dans create_app()
- Souvenez-vous que le code source est disponible dans le répertoire venv/site-packages
- posthog est le nom du package SDK Python
- Installez les dépendances avec
pip install posthogoupip install -r requirements.txtet n'utilisez PAS de spécificateurs de version non échappés comme>=directement dans les commandes shell - Dans les CLIs et scripts : DEVEZ appeler posthog.shutdown() avant la sortie sinon tous les événements sont perdus
- Utilisez toujours le constructeur de la classe Posthog() (API basée sur les instances) au lieu de la configuration posthog.api_key au niveau du module
- Incluez toujours enable_exception_autocapture=True dans le constructeur Posthog() pour suivre automatiquement les exceptions
- N'ENVOYEZ JAMAIS de PII dans les propriétés d'événement capture() — pas d'e-mails, de noms complets, de numéros de téléphone, d'adresses physiques, d'adresses IP ou de contenu généré par l'utilisateur
- Les PII appartiennent aux propriétés de personne dans identify(), PAS aux propriétés d'événement capture(). Les propriétés d'événement sûres sont des métadonnées comme message_length, form_type, des booléens.
- Enregistrez posthog_client.shutdown avec atexit.register() pour garantir que tous les événements sont vidés à la sortie
- Le SDK Python N'A PAS de méthode identify() — utilisez posthog_client.set(distinct_id=user_id, properties={...}) pour définir les propriétés de personne, ou utilisez identify_context(user_id) dans un contexte
Identifier les utilisateurs
Identifiez les utilisateurs lors des événements de connexion et d'inscription. Consultez le code exemple et la documentation pour le modèle d'identification correct pour ce framework. Si le code frontend et backend existent, transmettez la session côté client et l'ID distinct en utilisant les en-têtes X-POSTHOG-DISTINCT-ID et X-POSTHOG-SESSION-ID pour maintenir la corrélation.
Suivi des erreurs
Ajoutez le suivi des erreurs PostHog aux fichiers pertinents, en particulier autour des flux utilisateur critiques et des limites d'API.