1. 程式人生 > >Django筆記(cookie與session的運用及區別)

Django筆記(cookie與session的運用及區別)

目錄

怎麼使用

怎樣使用

cookie

瀏覽器端的會話技術

怎麼使用

設定cookie

response = HttpResponse()
# 設定cookies
#response.set_cookie(key,value[,max_age=None,exprise=None)]
# max_age=整數,指定cookie過期時間 設定為0 瀏覽器關閉失效  單位是秒
# exprise=整數,指定過期時間 還支援是一個datetime或timedelta,可以指定一個具體日期時間
#(expires=timedelta(days=10) 10天后過期) 設定為None永不過期
response.set_cookie('u_name', name, max_age=5)

讀取cookie

# 拿cookies裡面的值,返回給頁面
u_name = req.COOKIES.get("u_name")

刪除cookie:delete_cookie

def my_logout(req):
    # 重定向到首頁
    response = HttpResponseRedirect("/dj04app/my_index")
    # 刪除u_name 對於的cookies
    response.delete_cookie('u_name')
    return response

cookie的缺點:資料不安全,暴露在瀏覽器端

session

伺服器端的會話技術,基於cookie,把資料儲存到服務端

怎樣使用

設定session

# 設定session
#request.session['你的key'] = 你的value
req.session["ll"] = name

讀取session

# 讀取session ,你的key
my_session_data = req.session.get('ll')

session資料存在服務端

用mysql可以看到

裡面的資料用base64位加密,在網上可以找到解密網站

cookie與session的區別

1.cookie和session都是會話技術,cookie是執行在客戶端,session是執行在伺服器端。

2.cookie由大小限制以及瀏覽器在存cookie的個數也是有限的,session是沒有大小限制和伺服器的記憶體大小有關。

3.cookie由安全隱患,通過攔截或本地找到cookie後可以進行攻擊。

4.session是儲存子伺服器端上,存在一段時間才會消失,如果session過多會增加伺服器的壓力。