跟踪在Django项目中遇到某些网址的唯一用户

时间:2017-07-27 13:19:46

标签: python django django-middleware

在我的Django项目中,我想记录访问Web应用程序某个部分的所有唯一用户ID。目前,本节唯一的区别特征是它的url模式是在一个单独的模块中编写的。

跟踪访问这些网址模式的唯一身份用户的最佳方式是什么?尽可能以无成本(资源明智)的方式做到这就是我所说的最好的'。一个说明性的例子会很棒。

1 个答案:

答案 0 :(得分:2)

像谷歌分析这样的东西适合这项任务

但是,如果您希望自己在Django中实现某些功能,我建议使用以下内容

class TrackUniqueVisitsMiddleware(object):

    def process_request(self, request):
        if not request.user.is_authenticated:
            return
        if request.resolver_match.namespace in settings.NAMESPACES_TO_TRACK:
            UniqueUserVisit.objects.get_or_create(
                user=request.user,
                namespace=request.resolver_match.namespace,
                view_name=request.resolver_match.view_name
            )

其中UniqueUserVisit是存储用户访问过的所有唯一视图的模型。然后可以查询UniqueUserVisit以生成有关用户活动的报告。

request.resolver_match.namespace包含已访问网址的命名空间。

request.resolver_match.view_name包含网址的全名。