跟踪用户上次操作的时间。
django-online-users的Python项目详细描述
跟踪每个用户最后一次操作的时间
使用中间件,django在线用户将跟踪每个用户以及他们在数据库中最后一次操作的时间戳。
管理员可以在管理门户中看到这些数据,并且可以使用timedelta查询数据库。
这是针对较小的应用程序的,因为每个http请求都会导致数据库条目更新。
要求
- Python:2.7、3.3、3.4、3.5、3.6
- django:1.10+
设置
- 将“在线用户”添加到INSTALLED_APPS
INSTALLED_APPS=[...'online_users',]
- 将OnlineNowMiddleware添加到MIDDLEWARE_CLASSES后面的SessionMiddleware
MIDDLEWARE_CLASSES=(...'online_users.middleware.OnlineNowMiddleware',)
- 运行python manage.py migrate在数据库中创建表。
使用
- 每个用户最后一次操作的时间可以在管理门户中的http://127.0.0.1:8000/admin/online_users/onlineuser/
- 在过去15分钟内检索当前联机用户数
fromdatetimeimporttimedelta...user_activity_objects=OnlineUserActivity.get_user_activities()number_of_active_users=user_activity_objects.count()
- 还可以将timedelta指定给get_user_activities(),以查找活动
fromdatetimeimporttimedelta...user_activity_objects=OnlineUserActivity.get_user_activities(timedelta(minutes=60)users=(userforuserinuser_activity_objects)
API
onlineuseractivity包含两个值:有问题的用户user和存储为datetimefield的时间戳last_activity。
OnlineUserActivity.get_user_activities()将在默认情况下返回过去15分钟的onlineuseractivity对象。 开发人员还可以为查询传递不同时间长度的时间增量。响应是一个QuerySet,它包含 在此时间段内的活动用户,项目按时间降序排序。