Django应用程序捕获、跟踪和显示网站分析

dj-analytics的Python项目详细描述


[![Travis CI构建状态](https://travis ci.org/analytehealth/django analytics.svg)](https://travis ci.org/analytehealth/django analytics)


django analytics
===

django app to capture,跟踪并显示站点分析

install
----
pip install dj analytics


add to django configuration(1.7之前)
----
*将"djalytics"添加到settings.py文件中的"installed\u apps"。
*运行"manage.py migrate djalytics"创建数据库表。

add to django configuration(1.7+)
----------
*将"django分析"添加到settings.py文件中的"installed\u apps"。
*指向正确的迁移模块:

migration\u modules={
"django分析":"django.django迁移"
}

*运行"manage.py migrate djanalytics"创建数据库表。


配置
——
*创建和配置至少一个客户端和域。
*如果使用HTML捕获,请在url.py中包含djanalytics URL。例如:

urlpatterns+=模式(
'',
(r'',include('djalytics.url'))


*对于图表,包括图表url:

urlpatterns+=模式('',(r'^analytics/',include='djalytics.charts.url'))

*对于报表,包括报表URL:

urlpatterns+=模式('',(r'^analytics/',include='djalytics.reports.urls'))


>使用中间件捕获将"djanalytics.middleware.analyticsmidleware"添加到django项目的中间件类设置

*在settings.py中,添加dja_client_id='[uuid of client created above]'


----

<;script>;
var img_html='<;img src="http://dja_server.example.com/capture/'+
'?dja_id=[客户端uuid]'+
'&pth='+转义(window.location.pathname)+
'&qs='+转义(window.location.search.substr(window.location.search.indexof('?')+1))+
'&rf='+escape(document.referer)+
'&sw='+screen.width+
'&sh='+screen.height+
'"style="position:absolute;left:-999px">;";
document.getelementsbytagname('body')[0].innerHTML+=img_html;
<;/script>;

capture cross domain
---------
如果您将DJAnalytics实例托管在与要捕获的站点不同的域中,则需要使用稍有不同的机制。在服务器上设置djanalytics,并确保
它有djanalytics_js视图的url(包含在url.py文件中)。然后将以下
html放在模板中:

<;div id="dja_tag">;
<;script defer="defer">;
var script=document.createelement('script');
script.type='text/javascript';
script.src='https://dja_server.example.com/djanalytics.js'+
'?dja_id=[client uuid]';
document.getelementsbytagname('body')[0].appendchild(script);
<;/script>;

您需要将它们添加到站点之间的链接。
如果您要链接的站点是安装了DJAnalytics的Django站点,则可以使用
跨域中间件,方法是将"DJAnalytics.Middleware.CrossdomainMiddleware"添加到
中间件类设置中,然后传递客户端ID,链接中的用户ID和跟踪ID(分别为dja_id、dja_uuid、
和dja_跟踪ID)作为参数。这将处理设置
适当的cookies。

要按IP地址筛选
,请为客户端添加新的IPFilter。ipfilter使用netmask过滤地址。你是>还可以指定是否包含或排除给定的网络掩码。如果选择"包括",则只允许使用与网络掩码匹配的IP
地址。

pathfilters使用regex来确定路径上的匹配项。

此命令应该
很可能按计划(cron)运行。它需要几个参数:

*-s,--要处理的最早请求事件的开始日期。这是可选的。如果忽略,则命令将
不设置搜索requestevents时的开始时间。
*-e,--要处理的最新requestevent的结束日期。这是可选的。如果忽略,则该命令将
在搜索requestevents时不设置结束时间。
*-a,--max age-这用于计算就诊持续时间以及就诊持续时间,
转换和退出页面。此参数默认为30天。

转换是通过访问至少一个漏斗页面,然后访问转换页面来定义的。


许可证
----
[在此处阅读](https://raw.githubusercontent.com/analytechealth/django analytics/master/license)

-解决问题29-访问在设备详细信息和浏览器详细信息报告中被过度报告
-添加对django 1.8的支持(删除django nose要求)
-1.0.3
-解决问题28-页面和访问计数在某些报告中不正确
-将django版本限制为<;=1.7直到django nose的问题得到解决(https://github.com/django nose/django nose/issues/186)
-1.0.2
-在collect_reporting_stats命令中将django date_parse更改为dateutil.parser以进行日期时间分析
-1.0.1
-修复问题27-具有非ascii的用户代理字符导致collect_reporting廑u stats命令失败
-1.0
-分析报告建模(廑25)
-添加多个报告:
-廑19-访问群体概览报告
-廑20-设备概览报告
-廑21-浏览器和操作系统详细报告
-廑22-第页概述报告
-23-电子商务概述报告
-24-设备详细信息报告
-添加管理命令以将数据收集到报告模型中(26)

-0.11.3
-解决问题17-确保无论请求来自何处,都能提供djanalytics.js-0.11.2
-修复问题16-尝试确保所有浏览器都与djanalytics.js一起工作(ie8有一些问题)

-0.11.1
-修复问题15-djanalytics.js正在中断事件

-0.11
-添加问题13-跨域功能

-0.10.1
-修复问题#11-引用字段超过最大密钥长度

-0.10
-向请求事件模型添加屏幕宽度和高度(问题10)
-添加"sw"和"sh"参数以捕获视图以支持屏幕宽度和高度

-0.9
-修复问题6-引用长度>;200个字符会导致500个错误
-为顶级页添加图表(问题8)
-现在在中间件中捕获域
-为退出页添加图表(问题9)
-为外部引用者添加图表(问题7)
-为图表创建基本模板以更好地允许覆盖
-将chart views.py文件分为几个模块

-0.8
-更正了用户图表的名称。
-在中间件周围添加了try/except块,以避免在
客户端不存在或找不到客户端时出现500个错误。

-0.7.1
-修复问题5-创建日期requestevent存储了错误的日期

-0.7
-fix for issue 3-logic for d在捕获视图中确定有效域是错误的。

-0.6
-添加了位置模型对象。这将允许定期对IP地址进行地理编码,
由于IP地址随时间而变化。

-0.5
-问题修复1-捕获视图引发类型错误
-问题修复2-允许对头使用http戋x戋u forwarded戋u

-0.4
-django graphos的交换版本可修复安装问题travis ci

-0.3
-向requestevent模型添加了"referer"
-向requestevent模型添加了更多索引
-向readme添加了中间件文档

-0.2
-将requestevent created字段的默认值切换为"now()",而不是"today()"

-0.1
-初始版本

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

推荐PyPI第三方库


热门话题
java JavaFX 11可编辑组合框引发IndexOutOfBoundsException   java选择数组中的数组元素   java我从来没有找到创建2D ArrayList的正确方法   java JPA查找orderById的顶部数据,并按字符串过滤Id   使用java在ejabberd中进行xmpp外部身份验证   从ajax调用向java传递点运算符   java如何使用ReadWriteLock   使用Spring控制器和jQueryAjax的java重定向   java使JFrame中的JPanel可滚动   java如何用多个。jar库?   java EditText在RecyclerView中失去了对滚动的关注   java为什么我们必须扩展Servlet或GenericServlet或HttpServlet来创建Servlet应用程序?如果不扩展,我们可以开发Servlet应用程序吗?   使用递归java查找数组中的最大值   具有不同字段数的html表单的java域传输对象   java文本视图扩展;不支持操作异常   java如何使用iText的HTMLWorker类将多语言HTML字符串呈现为PDF