一个简单的统计跟踪器

django-tracker的Python项目详细描述


Version:0.0.1

简介

这个包会给你一个简单的工具来追踪匿名用户 你网站上的操作。你为一个动作选择一个标签,每次 用户执行此操作时,您可以调用后端跟踪方法:

from tracker.models import Tracker
tracker = Tracker()
tracker.incr_labels("user_connected|user_clicked_button")

此操作将增加“用户已连接”和“用户已单击”标签的计数器。 如果安装了tracker视图,也可以从javascript调用tracker:

from tracker.views import track, report

urlpatterns = patterns('',
    ...
    (r'^track/', track),
)

然后你可以访问/track/?labels=user_connected user_u clicked_button它将具有相同的效果。例如,使用jquery:

function track(labels) {
    $.ajax({
        url: '/track/?labels='+labels,
        dataType: 'text',
        type: "GET",
        error:function (xhr) {
        }
    });
}

track('user_connected|user_clicked_button')

您还可以指定用冒号分隔的两个额外信息:

track('user_connected:category:domId')

该类别将有助于在管理界面中筛选统计信息。dom id 可用于在页面上创建热图。下面是如何使用dom_id信息的简单示例:

<div id="tracked-links">
<a href="#1" id="link1">Test link 1</a>
<a href="#2" id="link2">Test link 2</a>
<a href="#3" id="link3">Test link 3</a>
<a href="#4" id="link4">Test link 4</a>
</div>

<p><a href="/report/">Report the clicks in the database</a></p>
<p><a href="#" id="get-stats">Get the statistics</a></p>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
    $('#tracked-links a').click(function(e) {
        track('tracked-links-'+this.id+':links:'+this.id);
    })

    $('#get-stats').click(function(){
        var dom_ids = "";
        $.each($('#tracked-links a'), function(index, value) {
            dom_ids += value.id + '|';
        });
        $.ajax({
            url: '/get_stats/?dom_ids='+dom_ids,
            dataType: 'json',
            type: "GET",
            error:function (xhr) {
            },
            success: function(data, textStatus, XMLHttpRequest) {
                for(stat in data) {
                    var id = data[stat][0];
                    var counter = data[stat][1];
                    var label = data[stat][2];
                    $('#'+id).text('clicked '+counter+ ' time.')
                }
            }
        });

    });

</script>

这个小脚本收集“tracked links”div中的id,并向服务器发出请求以获取 关于他们的统计数据。动作计数器随后显示在链接内。看看testproj 作为一个有效的例子。

http://github.com/batiste/django-tracker/raw/master/testproj/heatmap.png

它是如何工作的?

django tracker在数据库上很简单,其结构是使用memcache对每个操作进行计数。收集 memcache信息您需要执行以下操作之一:

* Setup and call the `report` view every 2 minutes
* Setup a cron that call tracker.models.make_daily_report function every 2 minutes
* Setup the Celery task that is provided in `tracker.tasks`.

这也意味着您需要使用memcache或至少使用locmem cache后端(仅当您有一台服务器时)。 它可能与数据库缓存一起工作,但它不是最佳配置。

所有信息都存储在每日统计模型中(按标签和日记录一次)。这些模型可以直接在管理界面中使用 检查你网站的有趣指标。

安装

# python setup.py install # as root

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

推荐PyPI第三方库


热门话题
java是安卓的子类。所容纳之物ClipData或ClipData。项目   毕加索中的java错误get()无法应用于(安卓.content.Context)   管道接受来自控制台和管道文本文件的Java输入   Java Windows文件权限   java如何在Selenium中找到此按钮?我尝试了partiallinktext并多次尝试cssSelector   java如何在spring jdbc模板中生成流式sql?   方法中的java全局值变为null   java设备“Mobile Intel(R)4 Series Express芯片组系列”(\\.\DISPLAY1)初始化失败:   java查找单独文件夹中的资源到类文件   java iCal4j添加会议说明   java如何处理InvalidTokenException?   oop如果Java不支持运算符重载,增量运算符如何在整数实例上工作?   java如何在Hibernate中获取<map>