溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用django怎么設(shè)置session過期時(shí)間

發(fā)布時(shí)間:2021-05-21 16:54:04 來源:億速云 閱讀:337 作者:Leah 欄目:開發(fā)技術(shù)

使用django怎么設(shè)置session過期時(shí)間?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

session的超時(shí)時(shí)間設(shè)置

settings中

  • SESSION_COOKIE_AGE=60*30 30分鐘。

  • SESSION_EXPIRE_AT_BROWSER_CLOSE False:會(huì)話cookie可以在用戶瀏覽器中保持有效期。True:關(guān)閉瀏覽器,則Cookie失效。

  • SESSION_COOKIE_DOMAIN 生效站點(diǎn)

  • SESSION_COOKIE_NAME cookie中保存session的名稱

Session使用比較簡(jiǎn)單,在request.session是一個(gè)字典類。session是保存在數(shù)據(jù)庫中的。

-------------------------------------------------------

按手冊(cè)和網(wǎng)上的方法在settings.py中設(shè)置“SESSION_COOKIE_AGE” 和 “SESSION_EXPIRE_AT_BROWSER_CLOSE” 均不生效。 通過查看django的源代碼"middleware.py"才知道這兩個(gè)參數(shù)只有在settings.SESSION_SAVE_EVERY_REQUEST為True時(shí)才有效。依此在settings.py中設(shè)置這個(gè)變量后問題解決。

從源代碼看SESSION_EXPIRE_AT_BROWSER_CLOSE為True時(shí) SESSION_COOKIE_AGE 不生效。也就是說用戶只能二選一,在瀏覽器關(guān)閉時(shí)使session失效 或 超時(shí)失效。

--------------------------------------------------------------

下面這個(gè)方法不是在settings中用的

request.session.set_expiry(value)

你可以傳遞四種不同的值給它:

  • 如果value是個(gè)整數(shù),session會(huì)在些秒數(shù)后失效(適用于整個(gè)Django框架,即這個(gè)數(shù)值時(shí)效時(shí)整個(gè)頁面都會(huì)session失效)。

  • 如果value是個(gè)datatime或timedelta,session就會(huì)在這個(gè)時(shí)間后失效。

  • 如果value是0,用戶關(guān)閉瀏覽器session就會(huì)失效。

  • 如果value是None,session會(huì)依賴全局session失效策略。

看完上述內(nèi)容,你們掌握使用django怎么設(shè)置session過期時(shí)間的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI