需要显示最近在线过的用户,需要记录用户最近登录时间,但是对于保存密码的用户来说不用登录,如何记录这个最近访问呢?有没有什么简单的办法?目前是在before_request记录,但是发现太浪费资源。也就是需要知道第一次访问改网站和退出该网站?
2 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
用户一段时间内不用输入密码,即访问页面时通过提交的Cookie进行了自动登录。此时我们的程序应该会把该用户的信息添加到session域中,一般session都会设定为半小时过期。我们可以记录该用户创建session的时间,作为用户最近登录时间
江户川乱折腾
TA贡献1851条经验 获得超5个赞
若对用户活动比较关注,即希望取得比较准确的用户活动的时间,建议还是用before_request来做.若只是想获取用户在某个时间段内首次登录的时间(用户最近登录时间),则可以考虑用其他方法.假设你是使用Flask-Login做登录,在比较新的版本中,存在一个user_accessed信号,这个信号在用户登录或者从COOKIE加载已保存的用户信息时发送,通过对这个信号进行监听,就可以实现最近登录的功能.下面是简单的示例代码:fromflask.ext.loginimportuser_accessed@user_accessed.connect_via(app)defwhen_user_accessed(sender,**extra):user_id=session.get('user_id')#下面可以开始自己的操作流程了,需要对user_id进行判断#首次发送时,user_id可能为空退出网站是比较难监控的.
添加回答
举报
0/150
提交
取消
