1、cookie簡介html
1.cookie就是保存在瀏覽器端的鍵值對。django
2.服務端能夠去編寫存放在瀏覽器端的cookie。瀏覽器
3.客戶端每次訪問服務器請求的時候,都會攜帶cookie到服務端。安全
4.cookie會被放在請求頭服務器
2、如何在django中操做cookie?cookie
1.從request 請求對象中的cookie裏經過指定的key來獲取相應的值。dom
test = request.COOKIES.get('key1') #獲取cookie中key1這個key所對應的值。ide
下面是一個簡單的應用示例:spa
def login(request):htm
c_user = request.COOKIES.get('username')
if not c_user:
return redirect('/login/')
#若是沒有從瀏覽器響應頭中獲得username對應的value,那麼直接跳轉回登陸頁面。
2.cookie回寫。
if request.method == "GET":
return render(request,'login.html')
else:
user = request.POST.get('username')
pwd = request.POST.get('password')
if user == 'admin' and pwd =='admin':
obj = redirect('/admin/')
obj.set_cookie('username','xxxx') ###爲瀏覽器回寫cookie!!key爲username 對應的value爲xxx。
return obj
else:
return render(request,'login.html')
3.設置cookie聲明週期。
若是想在回寫cookie時,能夠給cookie加一個超時時間,就能夠使用max_age參數。
例如:
obj.set_cookie('username','xxxx',max_age=10) ###爲瀏覽器回寫cookie!!key爲username 對應的value爲xxx,而且cookie的聲明週期爲10秒,10秒後自動消失。
4.設置cookie做用域。
若是須要設置cookie的做用域,能夠經過response的set_cookie中的path參數去進行設置。
path='/' #表明對整個站點生效。
path='/p1' #表明對www.xxxx.com/p1/*站點生效。
還能夠經過domain參數來設置,這個cookie對哪一個域名生效。
默認爲當前域名。
5.安全相關參數。
secure= False #默認值爲False ,也就是關閉狀態,當使用https時,須要開啓。
httponly = False #默認值爲False ,默認也是關閉狀態,若是開啓了httponly,那麼這個cookie只能在http請求傳輸的時候能夠被讀取,
js是沒法讀取這個cookie的。
6.cookie的簡單簽名。
經過response回寫cookie時。
obj.set_signed_cookie('kkk','vvv',salt='123456') #經過加鹽的方式爲cookie簽名。
request.get_signed_cookie('kkk',salt='123456') #獲取通過簽名後的cookie值。