Cookie 簡單設置使用
阿新 • • 發佈:2019-01-05
oct quest number line src rip response 保存 hide
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
Cookie 簡單設置使用