session的超時時間設置
settings中
SESSION_COOKIE_AGE=60*30 30分鍾。
SESSION_EXPIRE_AT_BROWSER_CLOSE False:會話cookie可以在用戶瀏覽器中保持有效期。True:關閉瀏覽器,則Cookie失效。
SESSION_COOKIE_DOMAIN 生效站點
SESSION_COOKIE_NAME cookie中保存session的名稱
Session使用比較簡單,在request.session是一個字典類。session是保存在數據庫中的。
-------------------------------------------------------
按手冊和網上的方法在settings.py中設置“SESSION_COOKIE_AGE” 和 “SESSION_EXPIRE_AT_BROWSER_CLOSE” 均不生效。 通過查看django的源代碼"middleware.py"才知道這兩個參數只有在settings.SESSION_SAVE_EVERY_REQUEST 為True時才有效。依此在settings.py中設置這個變量后問題解決。
從源代碼看SESSION_EXPIRE_AT_BROWSER_CLOSE為True時 SESSION_COOKIE_AGE 不生效。也就是說用戶只能二選一,在瀏覽器關閉時使session失效 或 超時失效。
--------------------------------------------------------------
下面這個方法不是在settings中用的
request.session.set_expiry(value)
你可以傳遞四種不同的值給它:
* 如果value是個整數,session會在些秒數后失效(適用於整個Django框架,即這個數值時效時整個頁面都會session失效)。
* 如果value是個datatime或timedelta,session就會在這個時間后失效。
* 如果value是0,用戶關閉瀏覽器session就會失效。
* 如果value是None,session會依賴全局session失效策略。