0

我想跟踪我的 django 网站的所有用户都在做什么。我想通过保存提供给他们的每个 HTML 页面来做到这一点。最简单的方法是什么?我目前正在考虑制作一个装饰器,在提供之前将 HTML 保存到文件中,但这需要在我的所有视图上添加该装饰器,这似乎并不理想。

4

3 回答 3

3

我相信更好的方法是保存用户所做的查询,因为您始终可以从查询中重新生成 html。然后你可以编写一个中间件来处理所有传入的请求,根据这里并将查询保存到数据库中。如果你真的想保存 html,你可以在process_response之后使用该功能进行保存。 来源

于 2012-08-17T22:01:57.550 回答
1

使用 django 信号。

request_finished当 Django 完成处理一个HttpRequest在您返回页面的每个视图的末尾发生的信号时,将调用该信号。在这里,您可以访问params响应中的集合并按照向用户显示的方式生成页面,或者只是保存response_object然后运行批处理以将其离线可视化。

信号文档

于 2012-08-17T22:19:58.840 回答
0

您可以实现每个站点缓存,然后查询缓存以获取您的统计信息。然而,正如其他中间件所发布的那样,这似乎是理想的。

但是 - 请记住,每个请求都会调用中间件,因此如果您正在执行诸如 db writes 之类的 i/o 繁重任务,它将对您网站的性能产生负面影响。

于 2012-08-17T22:21:59.000 回答