Python--day72--Cookie和Session內容回顧

 1 1. Cookie是什麼
 2         保存在瀏覽器端的鍵值對
 3         
 4         爲何要有Cookie?
 5             由於HTTP請求是無狀態的
 6         
 7         Cookie的原理?
 8             服務端能夠在返回響應的時候 作手腳
 9             在瀏覽器上寫入鍵值對(Cookie)
10             
11             瀏覽器發送請求的時候會自動攜帶該網站保存在我瀏覽器的鍵值對(Cookie)
12             
13         Django 從請求攜帶的Cookie中取值:
14             request.COOKIES.get("is_login")
15             request.get_signed_cookie(key, default=None, salt="xxx")
16         Django中設置Cookie:(針對的是響應對象)
17             rep = HttpResponse()/render(request, "test.html)/redirect()
18             rep.set_signed_cookie(key, value, salt="xxx", max_age=7)
19         Django中刪除Cookie:(註銷)
20             rep.delete_cookie(key)
21 
22     2. Session是什麼
23         Session保存在服務端的鍵值對
24         
25         Session依賴於Cookie
26         
27         dsadasdsadsafsjkndf: {"is_login": 1, "name": "xiaohei", "age":18}
28         dsaasdaknfgreryywdf: {"is_login": 1, "name": "xiaobai", "age":20}
29         wqrqrteknfgzddasqfg: {"is_login": 0, "name": "xiaohui", "age":48}
30         
31         給瀏覽器寫入Cookie:
32             sessionid:wqrqrteknfgzddasqfg
33             
34         1. 從用戶發來的請求的Cookie中 根據 sessionid 取值, 取到 wqrqrteknfgzddasqfg
35         2. 根據特殊字符串找到對應的 Session 數據  --> {"is_login": 0, "name": "xiaohui", "age":48}
36         3. request.session.get("is_login")    --> 從Session取值
37         
38         
39         Django中設置Session:
40             request.session["is_login"] = 1
41             request.session.set_expiry(7)  # 設置超時時間 (Cookie和Session數據的)
42             
43             
44             在settings.py中設置,每次請求都刷新Session超時時間
45             SESSION_SAVE_EVERY_REQUEST = True 
46         
47         Django中刪除Session:
48             request.session.flush()     清除Cookie和Session數據
49             
50             request.session.clear_expired()  將全部Session失效日期小於當前日期的數據刪除
51             
相關文章
相關標籤/搜索