request.session.set_expiry(10) #设置10s后session失效
request.session.get_expire_at_browser_close() #查看session是否在浏览器关闭后失效django的session默认都保存在django_session表里
在pathon中查看session:
from django.contrib.sessions.models import SessionSession.objects.all()s=Session.objects.get(pk='y6n24k3l19a94h2vy999o2i4zsb7vcaa')s.get_decoded() #查看该session的usernames.expire_date #查看该session的过期时间 set_expiry():* 如果value是个整数,session会在些秒数后失效。* 如果value是个datatime或timedelta,session就会在这个时间后失效。* 如果value是0,用户关闭浏览器session就会失效。* 如果value是None,session会依赖全局session失效策略。get_expiry_date() #查看session失效时间
get_expiry_age() #查看session失效时长get_expire_at_browser_close() #查看session是否在浏览器关闭后失效 django session默认2周后失效,关闭浏览器也不失效。使用set_expiry()方法设置session失效时间,这样设置后,关闭浏览器session还不会失效,只有当时间到了才会失效。 修改settings.py设置浏览器关闭后失效:1.在settings.py最后一行添加 SESSION_EXPIRE_AT_BROWSER_CLOSE=True 2.清空已保存的session:delete from django_session3.清空IE缓存4.重新测试OK,使用print request.session.get_expire_at_browser_close()查看session是否在浏览器关闭后失效django保存在数据库中的session,如果用户主动退出,session会自动清除,如果没有退出就一直保留,记录数越来越大,要定时清理没用的session。
任务计划定时运行命令
python manage.py clearsessions(未测试)
django-admin.py cleanup
只使用session的方式,无需再使用cookie方式。session其实是依赖于Cookie的,如果浏览器不支持Cookie的话,Django的Session也就无从用起了,因为Session的生成是根据Cookie里面记录的SESSION_COOKIE_NAME来生成的.
request.session.test_cookie_worked() #测试客户端是否支持cookie
Django中的Session和Cookie管理:
http://www.cnblogs.com/BeginMan/p/3890761.html
http://blog.csdn.net/aixiaohei/article/details/6947150
http://simple-is-better.com/news/499