国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Django操作cookie的實現

瀏覽:50日期:2024-09-05 15:39:06
前言

cookie:在網站中,http請求是無狀態的。也就是說即使第一次和服務器連接后并且登錄成功后,第二次請求服務器依然不能知道當前請求是哪個用戶。cookie的出現就是為了解決這個問題,第一次登錄后服務器返回一些數據(cookie)給瀏覽器,然后瀏覽器保存在本地,當該用戶發送第二次請求的時候,就會自動的把上次請求存儲的cookie數據自動的攜帶給服務器,服務器通過瀏覽器攜帶的數據就能判斷當前用戶是哪個了。cookie存儲的數據量有限,不同的瀏覽器有不同的存儲大小,但一般不超過4KB。因此使用cookie只能存儲一些小量的數據。

cookie的特點:

⑴以鍵值對方式進行存儲 ⑵通過瀏覽器訪問一個網站時,會將瀏覽器存儲的跟網站相關的所有cookie信息發送給該網站的服務器 ⑶cookie是基于域名安全的 ⑷cookie是有過期時間的,如果不指定,默認關閉瀏覽器之后cookie就會過期

Cookie的不可跨域名性

1、很多網站都會使用Cookie。例如,Google會向客戶端頒發Cookie,Baidu也會向客戶端頒發Cookie。那瀏覽器訪問Google會不會也攜帶上Baidu頒發的Cookie呢?或者Google能不能修改Baidu頒發的Cookie呢

2、答案是否定的。Cookie具有不可跨域名性。根據Cookie規范,瀏覽器訪問Google只會攜帶Google的Cookie,而不會攜帶Baidu的Cookie。Google也只能操作Google的Cookie,而不能操作Baidu的Cookie

3、Cookie在客戶端是由瀏覽器來管理的。瀏覽器能夠保證Google只會操作Google的Cookie而不會操作Baidu的Cookie,從而保證用戶的隱私安全。瀏覽器判斷一個網站是否能操作另一個網站Cookie的依據是域名。Google與Baidu的域名不一樣,因此Google不能操作Baidu的Cookie

4、需要注意的是,雖然網站images.google.com與網站www.google.com同屬于Google,但是域名不一樣,二者同樣不能互相操作彼此的Cookie

設置cookie

設置cookie是設置值給瀏覽器的。因此我們需要通過response的對象來設置,設置cookie可以通過response.set_cookie來設置,這個方法的相關參數如下:

key:這個cookie的key。 value:這個cookie的value。 max_age:最長的生命周期。單位是秒。 expires:過期時間。跟max_age是類似的,只不過這個參數需要傳遞一個具體的日期,比如datetime或者是符合日期格式的字符串。如果同時設置了expires和max_age,那么將會使用expires的值作為過期時間。 path:對域名下哪個路徑有效。默認是對域名下所有路徑都有效。 domain:針對哪個域名有效。默認是針對主域名下都有效,如果只要針對某個子域名才有效,那么可以設置這個屬性. secure:是否是安全的,如果設置為True,那么只能在https協議下才可用。 httponly:默認是False。如果為True,那么在客戶端不能通過JavaScript進行操作。獲取cookie

獲取瀏覽器發送過來的cookie信息。可以通過request.COOKIES來或者。這個對象是一個字典類型。比如獲取所有的cookie,那么示例代碼如下:

cookies = request.COOKIESfor cookie_key,cookie_value in cookies.items(): print(cookie_key,cookie_value)刪除cookie

通過delete_cookie即可刪除cookie。實際上刪除cookie就是將指定的cookie的值設置為空的字符串,然后使用將他的過期時間設置為0,也就是瀏覽器關閉后就過期。

實戰案例

我們先在uris.py中寫入三個路由,一個設置cookie路由,一個獲取cookie路由,一個刪除cookie路由,代碼如下:

# 項目根路由urlpatterns = [ path(’cookie_app/’, include(’cookie_app.urls’)),]# cookie_app.urls.pyurlpatterns = [ path(’set_cookie/’, views.set_cookie), path(’get_cookie/’, views.get_cookie), path(’delete_cookie/’, views.delete_cookie),]

接著我們在views.py視圖中寫入對應的視圖,代碼如下:

def set_cookie(request): '''設置cookie''' response = HttpResponse(’success’) response.set_cookie(’username’, ’jkc’, max_age=180) # 設置cookie,過期時間為180秒 return responsedef get_cookie(request): '''獲取cookie''' cookies = request.COOKIES return HttpResponse(cookies.items())def delete_cookie(request): '''刪除cookie''' response = HttpResponse(’刪除cookie成功’) response.delete_cookie(’username’) return response

接下來我們訪問url地址127.0.0.1/cookie_app/set_cookie/,打開F12,我們可以看到網絡請求中的response header中有set-cookie字段

Django操作cookie的實現

我們也可以打開網站地址上的!,如下圖

Django操作cookie的實現

然后會出現彈出以下的窗口,點擊cookie

Django操作cookie的實現

我們會查看到自己剛才設置的cookieusername,且過期時間是之前設置的3分鐘

Django操作cookie的實現

Django操作cookie的實現

接下來我們訪問http://127.0.0.1:8000/cookie_app/get_cookie/獲取cookie,瀏覽器頁面會返回(’username’, ’jkc’),我們也可以打開F12查看請求頭的信息,會發現請求頭中攜帶了cookie信息,如下圖

Django操作cookie的實現

最后我們訪問http://127.0.0.1:8000/cookie_app/delete_cookie/刪除cookie,瀏覽器頁面返回刪除cookie成功,接著我們查看網站的cookie信息查看會發現username的值為空,如下圖

Django操作cookie的實現

為什么會設置為空?我們可以查看delete_cookie方法的源碼,如下

def delete_cookie(self, key, path=’/’, domain=None): # Most browsers ignore the Set-Cookie header if the cookie name starts # with __Host- or __Secure- and the cookie doesn’t use the secure flag. secure = key.startswith((’__Secure-’, ’__Host-’)) self.set_cookie(key, max_age=0, path=path, domain=domain, secure=secure,expires=’Thu, 01 Jan 1970 00:00:00 GMT’, )

可以看到,它里面其實是調用了set_cookie方法,然后沒有給value賦值,默認就為’’空字符串,然后設置max_age為0,代表過期時間就是現在,立馬就過期

到此這篇關于Django操作cookie的實現的文章就介紹到這了,更多相關Django操作cookie內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Django
相關文章:
主站蜘蛛池模板: 亚洲精品欧美精品一区二区 | 成人交性视频免费看 | 在线a毛片免费视频观看 | 免费视频一区二区三区四区 | 中国a级淫片免费播放 | 午夜免费69性视频爽爽爽 | 日韩 国产 欧美 精品 在线 | 欧美操人 | 国产欧美日韩精品a在线观看 | 免费一级在线观看 | 成人18免费入口 | 一区二区中文字幕在线观看 | 成年人网站在线 | 女性无套免费网站在线看 | 性欧美高清极品xx | 日本午夜高清视频 | 欧美偷拍小视频 | 亚洲欧美一区二区三区不卡 | 欧美久草 | 看一级毛片国产一级毛片 | 亚洲精品视频网 | 国产精品久久久久久久网站 | 一本色道久久综合亚洲精品高清 | 欧美影院久久 | 久久久久国产精品免费网站 | 国产亚洲精品久久久久久久久激情 | 久久精品国产精品亚洲综合 | 国产在线91精品入口首页 | 精品日本久久久久久久久久 | 久草免费资源视频 | 成人网18免费网 | a毛片免费 | 久久久久久尹人网香蕉 | 亚洲天堂伊人 | 久精品在线观看 | 美女视频免费看视频网站 | 欧美成人精品高清在线播放 | 国产精品高清在线观看93 | 超清国产粉嫩456在线免播放 | 久久久久久99精品 | 免费一级毛片无毒不卡 |