一个简单的统计跟踪器

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 For Loop没有输出(我认为)它应该如何输出   java Maven可以在一个模块中打包两个jar,使用相同的文件名但不同的图表集吗?   java OData读取单个实体最佳实践   java为什么我的代码在以下条件下返回false?   java QueryDsl投影元素集合   在为Java Swing元素实现ActionListener时,如何解决静态引用错误?   libGDX设置允许我使用java8,它在Android中崩溃   如何将日期从shell脚本传递到java即时数据类型   java如何向JList添加复选框和图像   java如何编写这个Listview?   java Eclipse每项目构建设置   java如何将spring引导应用程序指向外部jar的logback。xml   java更改EditText的下划线/样式。。。。。不是链接,而是水平滚动文本   java JPQL:使用复合键建模具有多个关系的查询实体   javascript如何获取Java中的最后32个字节   sql检查Java Derby中是否存在架构   java如何从视图中获取MVC Spring控制器中jstl select的所有项   java gson在需要对象时遇到空数组问题