python - 跟踪 Django 项目中点击特定 URL 的唯一用户

标签 python django django-middleware

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

跟踪访问这些 url 模式的独特用户的最佳方式是什么?尽可能无成本地(资源明智地)做到这一点就是我所说的“最好”的意思。一个说明性的例子会很棒。

最佳答案

Google Analytics 之类的东西适合这项任务

但是,如果你想在 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 是一个模型,它存储了用户访问过的所有唯一 View 。然后可以查询 UniqueUserVisit 以生成有关用户事件的报告。

request.resolver_match.namespace 包含访问的 url 的命名空间。

request.resolver_match.view_name 包含 url 的全名。

关于python - 跟踪 Django 项目中点击特定 URL 的唯一用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45352031/

相关文章:

django - 在 for 循环中如何排除查询集中的项目?

python - 根据权限管理 django admin 过滤器

python - 如何让每个 child 的一个类方法都不同(并从基类调用它)

Django 中间件和 HttpRequest 的变化

python - 尝试在 Django 中使用 LoginRequiredMiddleware 时出错

python - 如何在 Python 脚本中运行另一个 Python 脚本?

python - matplotlib,如何在给定条件下绘制 3d 2 变量函数

django - 在 Django 中间件中编辑响应内容

python - 在 Python 中,如何用列表中的随机项替换字符串中的单词?

python - 检查索引 Pandas 中是否包含数字的问题