05_request對象操作session詳解


在django中操作session

django中的session默認情況下是存儲在服務器的數據庫中的,在表中會根據sessionid即session_key數據,然后再把這個sessionid 放到cookie中發送給瀏覽器存儲,瀏覽器下次再向服務器發送請求的時候會自動的把所有cookie信息都發送給服務器,服務器再從cookie中獲取sessionid然后再從數據庫中獲取session數據。但是我們在操作session的時候,這些細節根本不用管,我們只需要通過request.session即可操作。 示例代碼如下:

def session_test(request):
    request.session.get('username')
    return HttpResponse('獲取session')

session 常用方法如下:

  1. get: 從session中獲取指定值
  2. pop: 從session中刪除一個值, 並返回
  3. keys: 從session中獲取所有的鍵(key)
  4. items: 從session中獲取所有的值, 返回如這樣的數據: dict_items([('username', 'long'), ('pwd', 'yanyan')])
  5. clear: 清除當前用戶的session數據, sessionid還會存在
  6. flush: 刪除session並且刪除瀏覽器中存儲的sessionid, 一般在注銷的時候用得比較多 (會把服務器中django_session表中的數據一並刪除掉)
  7. set_expiry(value): 設置過期時間 默認不設置的話,過期時間是2周
    * 整數: 代表秒數,表示多少秒后過期
    * 0: 零, 代表只要瀏覽器關閉,session就會過期
    * None: 使用全局的session配置。在session.py中可以設置SESSION_COOKIE_AGE來配置全局的過期時間, 默認也是兩周過期
  8. clear_expired: 清除過期的session。 Django並不會清除過期的session,需要定期手動的清理,或者是在終端,使用命令行 python manage.py clearsessions 來清除過期的session


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM