移动应用的最小分析

django-femtolytics的Python项目详细描述


django女性分析师

这是用于femtolytics.com的开放源代码。使用这个django包,您可以运行自己的femtolytics实例,而不依赖任何第三方跟踪来了解人们如何使用您的移动应用程序。在

你可以在https://pub.dev/packages/femtolytics找到一个女性分析的Flutter客户端

您可以在django-femtolytics-sample找到一个正确配置为运行Django femtolytics的Django示例项目。如果您已经有一个现有的Django项目,并希望将Django femtolytics合并到其中,请按照下面的说明操作。在

入门

首先需要安装依赖项

pip install django-femtolytics

或者把它加到你的要求.txt在

^{pr2}$

设置

在你的项目中设置.py将女性分析添加到应用程序列表中

INSTALLED_APPS=[...'femtolytics',]

然后,可以将路径添加到项目URL:

fromdjango.confimportsettingsfromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[path('analytics/api/v1/',include('femtolytics.api.urls')),path('analytics/',include('femtolytics.urls')),]

femtolytics.api.urls对应于移动应用程序客户端将向其发送信息的端点。您应该确保它与在应用程序中配置客户端时传递的URL相匹配。在

femtolytics.urls是主仪表板URL,可让您访问有关用户正在做什么的详细信息。你将能够跟踪,会议,访客,自定义行动,目标和崩溃。在

最后确保安装迁移

python manage.py migrate

所有仪表板URL femtolytics.urls都需要用户登录,因此您可以确保没有人可以访问这些信息。在

跟踪

Femtolytics要求创建的应用程序与您在应用程序中使用的包名称相同。因此,在您的客户机中生成事件之前,请务必访问仪表板和add an application。在

自定义

仪表板是可自定义的,因为它使用Template ViewsForm Views。在

以下是使用的不同视图

  • DashboardView是一个跳板视图,它将选择第一个注册的移动应用程序并重定向到该视图的仪表板。在
  • DashboardByAppView为特定应用程序生成仪表板。在
  • AppsView显示已配置应用程序的列表。在
  • AppsAdd是一个用于添加注册新应用程序的窗体视图。在
  • AppsEdit是同一个FormView,但用于编辑现有的应用程序。在
  • AppsDelete删除应用程序。在
  • SessionsView是一个跳板视图,它将选择第一个注册的移动应用程序并重定向到该应用程序的会话列表。在
  • SessionsByAppView显示特定应用程序的会话列表。在
  • SessionView显示特定会话。在
  • VisitorsView是一个sprinboard视图,它将选择第一个注册的移动应用程序并重定向到该应用程序的访问者列表。在
  • VisitorsByAppView显示特定应用程序的访问者列表。在
  • VisitorView显示一个特定的访问者。在
  • CrashesView是一个sprinboard视图,它将选择第一个注册的移动应用程序并重定向到该应用程序的崩溃列表。在
  • CrashesByAppView显示特定应用程序的崩溃列表。在
  • CrashView显示一个特定的崩溃。在
  • GoalsView是一个sprinboard视图,它将选择第一个注册的移动应用程序并重定向到该应用程序的目标列表。在
  • GoalsByAppView显示特定应用程序的目标列表。在
  • GoalView显示一个特定的目标。在

跳板视图DashboardViewSessionsViewVisitorsViewCrashesView和{}对重定向进行success_url和{}。如果找到应用程序,它将重定向到success_url,否则将重定向到failed_url。在

只有AppsAddAppsEdit和{}使用一个success_url参数来定义添加、编辑或删除应用程序后的重定向位置。在

以下是使用自定义模板的自定义路由定义示例:

app_name="analytics"urlpatterns=[path("",views.index,name="index"),# Dashboardpath("dashboard",subscription_required()(femto_views.DashboardView.as_view(success_url="analytics:dashboards_by_app",failed_url="analytics:apps_add",)),name="dashboard",),path("dashboard/<uuid:app_id>",subscription_required()(femto_views.DashboardByAppView.as_view(template_name="analytics/dashboard.html",)),name="dashboards_by_app",),# Appspath("apps/",femto_views.AppsView.as_view(template_name="analytics/apps.html",),name="apps",),path("apps/add",femto_views.AppsAdd.as_view(template_name="analytics/apps_add.html",success_url=reverse_lazy("analytics:apps"),),name="apps_add",),path("apps/edit/<uuid:app_id>",femto_views.AppsEdit.as_view(template_name="analytics/apps_add.html",success_url=reverse_lazy("analytics:apps"),),name="apps_edit",),path("apps/delete/<uuid:app_id>",femto_views.AppsDelete.as_view(success_url=reverse_lazy("analytics:apps"),),name="apps_delete",),# Sessionspath("sessions",subscription_required()(femto_views.SessionsView.as_view(success_url="analytics:sessions_by_app",failed_url="analytics:account",),),name="sessions",),path("sessions/<uuid:app_id>",subscription_required()(femto_views.SessionsByAppView.as_view(template_name="analytics/sessions.html",)),name="sessions_by_app",),path("sessions/<uuid:app_id>/<uuid:session_id>",subscription_required()(femto_views.SessionView.as_view(template_name="analytics/session.html",)),name="session",),# Visitorspath("visitors",subscription_required()(femto_views.VisitorsView.as_view(success_url="analytics:visitors_by_app",failed_url="analytics:account",)),name="visitors",),path("visitors/<uuid:app_id>",subscription_required()(femto_views.VisitorsByAppView.as_view(template_name="analytics/visitors.html",)),name="visitors_by_app",),path("visitors/<uuid:app_id>/<uuid:visitor_id>",subscription_required()(femto_views.VisitorView.as_view(template_name="analytics/visitor.html",)),name="visitor",),# Crashpath("crashes/<uuid:app_id>/<uuid:crash_id>",subscription_required()(femto_views.CrashView.as_view(template_name="analytics/crash.html",)),name="crash",),# Goalpath("goals/<uuid:app_id>/<uuid:goal_id>",subscription_required()(femto_views.GoalView.as_view(template_name="analytics/goal.html",)),name="goal",),]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有较旧spring启动版本的java Maven依赖项   java如何在安卓中获取移动网络活动计划使用历史记录   java CXF抛出了所有策略替代方案都无法满足的问题   java如何创建类似ApachePOI的程序   Java Hashmap如何处理单词网格中的键冲突   java如何在多个下拉列表中搜索下一个元素   如何将css文件导入我的JavaSpringWebApp?   如何在Java中将字符串[]转换为字符串[]?   排序如何在Java中根据列的组合对spark dataframe进行排序?   java错误:无法访问com的zzbej类文件。谷歌。安卓gms。内部的没有找到zzbej   illegalargumentexception Java Comparator引发非法参数异常   java删除ShaperRenderer偏移量   安卓中的java出生日期问题   设置MediaBrowserService和MediaSession时遇到java问题   java对抛出声明的澄清   java在IntelliJ IDEA的Gradle项目的“提供”范围内添加依赖项   带2个变量的java For循环?   java是一个更平坦的问题   使用JACOB保存Word文档(Java)