mcpField
I
integration-django

integration-django

github.com/posthog数据与数据库7692 次安装今天更新
代码仓库

关于 integration-django

此技能帮助 Django 应用集成 PostHog 分析,结合分阶段配置流程和示例代码,提供中间件、事件追踪、用户识别及错误捕获指南。

主要功能

  1. 01四步集成流程
  2. 02Django 与 PostHog 参考资料
  3. 03通过中间件追踪并捕获异常
  4. 04事件追踪与用户识别
  5. 05通过环境变量管理密钥

适用场景

  1. 01为 Django 应用添加 PostHog 分析
  2. 02通过 Django 中间件捕获异常
  3. 03追踪登录和注册活动

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/posthog/skills --skill integration-django

安装后在 Claude Code 中输入/integration-django确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
basic-integration-1.0-begin.md
basic-integration-1.1-edit.md
basic-integration-1.2-revise.md
basic-integration-1.3-conclude.md
django.md
EXAMPLE.md
identify-users.md

详细介绍

Django 的 PostHog 集成

此技能可帮助你为 Django 应用添加 PostHog 分析功能。

工作流

按顺序完成以下步骤,以完成集成:

  1. basic-integration-1.0-begin.md - PostHog 设置 - 开始 ← 从这里开始
  2. basic-integration-1.1-edit.md - PostHog 设置 - 编辑
  3. basic-integration-1.2-revise.md - PostHog 设置 - 修订
  4. basic-integration-1.3-conclude.md - PostHog 设置 - 总结

参考文件

  • references/EXAMPLE.md - Django 示例项目代码
  • references/django.md - Django - 文档
  • references/identify-users.md - 识别用户 - 文档
  • references/basic-integration-1.0-begin.md - PostHog 设置 - 开始
  • references/basic-integration-1.1-edit.md - PostHog 设置 - 编辑
  • references/basic-integration-1.2-revise.md - PostHog 设置 - 修订
  • references/basic-integration-1.3-conclude.md - PostHog 设置 - 总结

示例项目展示了目标实现模式。请参阅文档了解 API 详情。

核心原则

  • 环境变量:始终使用环境变量存储 PostHog 密钥。切勿将其硬编码。
  • 最小改动:在现有集成旁添加 PostHog 代码。不要替换或重构现有代码。
  • 遵循示例:实现应尽可能遵循示例项目中的模式。

框架指南

  • 将 'posthog.integrations.django.PosthogContextMiddleware' 添加到 MIDDLEWARE,它会自动提取追踪标头并捕获异常
  • 在 AppConfig.ready() 中使用环境变量中的 api_key 和 host 初始化 PostHog
  • 使用上下文 API 模式:调用 new_context()、identify_context(user_id),然后调用 capture()
  • 对于登录/登出视图,请创建新上下文,因为用户状态会在请求期间发生变化
  • 不要创建自定义中间件、distinct_id 辅助函数或条件检查——SDK 会处理这些
  • 请记住,源代码位于 venv/site-packages 目录中
  • posthog 是 Python SDK 的包名
  • 使用 pip install posthog 或 pip install -r requirements.txt 安装依赖项;不要在 shell 命令中直接使用未加引号的版本说明符,例如 >=
  • 在 CLI 和脚本中:退出前必须调用 posthog.shutdown(),否则所有事件都会丢失
  • 始终使用 Posthog() 类构造函数(基于实例的 API),而不是模块级的 posthog.api_key 配置
  • 始终在 Posthog() 构造函数中包含 enable_exception_autocapture=True,以自动追踪异常
  • 绝不要在 capture() 事件属性中发送 PII——包括电子邮件、全名、电话号码、实际地址、IP 地址或用户生成的内容
  • PII 应放在 identify() 的人员属性中,而不是 capture() 的事件属性中。安全的事件属性包括 message_length、form_type、布尔标记等元数据。
  • 注册 posthog_client.shutdown 和 atexit.register(),确保退出时刷新所有事件
  • Python SDK 没有 identify() 方法——请使用 posthog_client.set(distinct_id=user_id, properties={...}) 设置人员属性,或在上下文中使用 identify_context(user_id)

识别用户

在登录和注册事件期间识别用户。请参阅示例代码和文档,了解此框架的正确识别模式。如果同时存在前端和后端代码,请通过 X-POSTHOG-DISTINCT-ID 和 X-POSTHOG-SESSION-ID 标头传递客户端会话和 distinct ID,以保持关联。

错误追踪

在相关文件中添加 PostHog 错误追踪,尤其是在关键用户流程和 API 边界附近。

评论

支持 Markdown