1. 程式人生 > >Cookie 簡單設置使用

Cookie 簡單設置使用

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 簡單設置使用