• Session管理


    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 Session
    Session.objects.all()
    s=Session.objects.get(pk='y6n24k3l19a94h2vy999o2i4zsb7vcaa')
    s.get_decoded() #查看该session的username
    s.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_session
    3.清空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

  • 相关阅读:
    小程序踩坑(三)-上拉加载和下拉刷新篇
    小程序踩坑(二)
    小程序入门(一)
    移动端那些事(一)
    css3写单选框,复选框
    websockect入门(一)
    一个简单的blog系统(十六) 增加日志功能
    一个简单的blog系统(十四) 增加用户头像
    一个简单的blog系统(十三) 增加404页面
    一个简单的blog系统(十二) 增加友情链接页面
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/5434962.html
Copyright © 2020-2023  润新知