一、Cookie
1.1 cookie簡介
? ? 在瀏覽器等客戶端開啟了cookie時霹购,會將cookie以key/value的形式保存到瀏覽器中访惜,即具體的路徑中,為了安全起見宙址,cookie中最好不要儲存敏感的密碼轴脐,他僅僅是一段文本信息。cookie是域名安全的抡砂,不同的域名是不能夠共享同一個cookie大咱。最常用的就是儲存用戶名。
1.2 cookie的設置
? ? 通過response來進行設置cookie
????response = HttpResponse('設置cookie')
????response.set_cookie('name', 'xiaomingtongxue') ? ?# 臨時cookie
????response.set_cookie('age', '23', max_age=60) ? ? # max_age設置有效期注益,單位:秒
1.3 cookie的獲取
? ? 通過request獲取cookie
? ? request.COOKIES.get('name') ? >> ??'xiaomingtongxue'
二碴巾、Session
2.1 session簡介
? ? session儲存在服務器中,其在瀏覽器客戶端中也有一個鍵相對應丑搔,即一個key(并不是真正的數(shù)據(jù))厦瓢。而存在于服務器中的則是真正的數(shù)據(jù)提揍。
? ? 在redis數(shù)據(jù)庫中存在的形式:sessionid ? >> ?
:1:django.contrib.sessions.cache7kgfbgarg3pjbv8z9zpu92nbdxqcbn42
get?:1:django.contrib.sessions.cache7kgfbgarg3pjbv8z9zpu92nbdxqcbn42(見下圖)
2.2 Django中的session
? ? Django默認開啟session,session的儲存方式有很多種煮仇,一般使用第三方擴展django-redis來進行儲存在redis中劳跃,redis性能極高。還需要在Django的配置文件中設置使用redis數(shù)據(jù)庫來進行儲存session浙垫。
2.3 session的操作
? ? 2.3.1 request.session['name'] = 'xiaomingtongxue' ? >> ?設置session
? ? 2.3.2 request.session.get('name') ?>> ?獲取session ?>> ?xiaomingtongxue
? ? 2.3.3 request.session.clear() ? >> ?刪除所有session的數(shù)據(jù)刨仑,鍵值對
? ? 2.3.4 request.session.flush() ?>> ?刪除所有session的數(shù)據(jù)及sessionid
? ? 2.3.5 del request.session['name'] ?>> ?刪除指定的鍵值對數(shù)據(jù)
? ? 2.3.6 request.session.set_espiry(num) ?>> ?設置有效期
????????????0:用戶關(guān)閉瀏覽器時刪除數(shù)據(jù);
????????????None:默認是兩周绞呈;
????????????還可以通過Django的setting.py配置文件進行設置:SESSION_COOKIE_AGE