在Django项目中cookie是最常用的跟踪用户身份的,另外两种方式为:URL重写,隐藏域。cookie保存在浏览器里,session保存在服务器里。
在做记住密码,保持用户登录状态等功能时,用session将会更加方便,按例如下:
#设置session字段用于验证登录
request.session['ad_id'] = manager.ad_id
#选择管理员登录状态
if checkbox:
out_time = datetime.now() + timedelta(days=10)
request.session.set_expiry(out_time)
else:
request.session.set_expiry(0)
可以看到如果不想记住密码,只需把session的set_expiry()方法参数设为0即可,当浏览器关闭后,用户就得再次登录才能访问相应页面。