Cookie 簡單設定使用
阿新 • • 發佈:2019-01-05
cookie的理解可以為,存放在使用者瀏覽器上的一個檔案,裡面是鍵值對資料,用於跟服務端通訊。
1、獲取Cookie:
1 2 3 4 5 6 |
request.COOKIES[ 'key'
]
request.get_signed_cookie(key, default
=
RAISE_ERROR, salt
=
'', max_age
=
None
)
引數:
default: 預設值
salt: 加密鹽
max_age: 後臺控制過期時間
|
2、設定Cookie:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
rep
=
HttpResponse(...) 或 rep = render(request, ...)
rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt
=
'加密鹽'
,...)
引數:
key, 鍵
value
=
'', 值
max_age
=
None
, 超時時間
expires
=
None
, 超時時間(IE requires expires, so
set
it
if
hasn't been already.)按日期時間算
path
=
'/'
, Cookie生效的路徑,
/
表示根路徑,特殊的:跟路徑的cookie可以被任何url的頁面訪問
domain
=
None
, Cookie生效的域名
secure
=
False
, https傳輸,網站走https時要加上
httponly
=
False
只能http協議傳輸,無法被JavaScript獲取(不是絕對,底層抓包可以獲取到也可以被覆蓋)
|
由於cookie儲存在客戶端的電腦上,所以,JavaScript和jquery也可以操作cookie。
簡單例子:
views:
1 from django.shortcuts import render,HttpResponse,redirect 2 3 dic = { 4 "tom":{"pwd":'123'}, 5 "lily":{"pwd":'111'} 6 } 7 def login(request): 8 if request.method=="GET": 9 return render(request,'login.html') 10 u=request.POST.get('user') 11 pwd=request.POST.get('pwd') 12 if dic.get(u): 13 if dic[u]["pwd"]==pwd: 14 res=redirect('/home') 15 # res.set_cookie('user1',u) #不設定快取有效時間,瀏覽器重啟後失效 16 # res.set_cookie('user1',u,max_age=5) #設定max_age指定多少秒後失效 17 import datetime 18 curr_time=datetime.datetime.now() 19 expire_time=curr_time + datetime.timedelta(seconds=5) 20 print(curr_time,expire_time) 21 res.set_cookie('user1',u,expires=expire_time) #設定max_age指定多少秒後失效 22 return res 23 else: 24 return redirect('/login') 25 return redirect('/login') 26 27 def home(request): 28 v = request.COOKIES['user1'] 29 if not v: 30 return render(request,'login.html') 31 32 33 return render(request,'home.html',{"curr_user":v})View Code
templates:
1 login.html 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>Title</title> 7 </head> 8 <body> 9 <form action="/login" method="post"> 10 <input type="text" name="user" placeholder="使用者名稱" /> 11 <input type="text" name="pwd" placeholder="密碼" /> 12 <input type="submit"/> 13 </form> 14 </body> 15 </html> 16 17 home.html 18 <!DOCTYPE html> 19 <html lang="en"> 20 <head> 21 <meta charset="UTF-8"> 22 <title>Title</title> 23 </head> 24 <body> 25 <h1>歡迎你,{{ curr_user }}</h1> 26 </body> 27 </html>View Code