14.Django之操做cookie

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值。

相關文章
相關標籤/搜索