【发布时间】:2017-07-27 13:19:45
【问题描述】:
在我的一个 Django 项目中,我想记录访问 Web 应用程序某个部分的所有唯一用户 ID。目前,这部分唯一的区别是它的 url 模式是写在一个单独的模块中。
跟踪访问这些网址模式的唯一身份用户的最佳方法是什么?我所说的“最好”的意思是尽可能不花钱(资源明智)。一个说明性的例子会很棒。
【问题讨论】:
标签: python django django-middleware
在我的一个 Django 项目中,我想记录访问 Web 应用程序某个部分的所有唯一用户 ID。目前,这部分唯一的区别是它的 url 模式是写在一个单独的模块中。
跟踪访问这些网址模式的唯一身份用户的最佳方法是什么?我所说的“最好”的意思是尽可能不花钱(资源明智)。一个说明性的例子会很棒。
【问题讨论】:
标签: python django django-middleware
像谷歌分析这样的东西适合这个任务
但是,如果你想在 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 包含被访问 url 的命名空间。
request.resolver_match.view_name 包含网址的全名。
【讨论】:
redis 作为后端,所以你写的代码会有一个变化。否则,看起来不错!