Django之session

前言

理解Session之前,一定要先理解cookie,可以參考上一篇文章Django之cookie

session作爲一種會話技術,其底層是基於cookie,當然session是存在於Server端的,因此更加安全。實際當中商城的購物車、第一次次登陸之後直接訪問首頁的操作,都可以基於會話技術中的session來實現,非常方便安全。

下面對比上篇文章的Django之cookie的登錄、訪問首頁的操作,用session來實現記錄。通過實際的操作,對比cookie來進一步理解session

參考

以下文章方便客戶用來理解session
Django操作session理解三點:

  • 獲取、設置、刪除及其它api操作
  • Session詳細流程解析,這個是重點
  • Django中的Session配置,也就是session用什麼來存儲
    其中最重要的是理解session流程
    在這裏插入圖片描述
    cookie和session在Django中的應用:對於cookie和session在一起理解了,可以對比了解。

實操

對於參考部分內容,仔細看看,先理解下,下面就是通過前一篇文章的基礎上,實際操作理解session:

準備

  • 數據遷移
    執行:makemigrations migrate 命令
    DJango的session是基於app和中間件的,在settings.py中
INSTALLED_APPS = [
    ...
    'django.contrib.sessions',
   ...
]
MIDDLEWARE = [
    ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    ...
]

其中 django.contrib.sessions.middleware.SessionMiddleware 是DJango中間件,如果不用項目中不用session是可以屏蔽掉的,節省資源;如果使用session,默認session存儲在db中的
session存儲位置有幾種方式,可以根據需要是否要django.contrib.sessions App配置

代碼
對比上一篇文章 DJango cookie
views.py中通過 通過cookie設置用戶名和通過cookie獲取用戶名,改成sessiion的形式就可以了,另外template裏面已經寫好了對應的UI界面。
在這裏插入圖片描述
直接訪問index頁面會跳轉到login界面;從登陸界面提交用戶名和密碼,如果匹配正確就會跳轉到index界面,同時server端通過Session記錄用戶名;再次進入index界面時候,直接從session中獲取用戶名,如果存在就允許直接進入index界面

在這裏插入圖片描述

看下數據庫
在這裏插入圖片描述
完整Demo代碼下載地址

發佈了354 篇原創文章 · 獲贊 119 · 訪問量 69萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章