Django操作cookie


瀏覽器清空cookie快捷鍵:ctrl+shift+deletecookie中包含csrf認證信息

獲取Cookie

request.COOKIES['key']

request.COOKIES.get['key']

request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)(簽名cookie,在設置時進行了簽名加密)

參數:

default: 默認值

salt: 加密鹽

max_age: 后台控制過期時間

 

設置Cookie

rep = HttpResponse(...)

rep render(request, ...)

rep redirect( ...)

 

rep.set_cookie(key,value,...)

rep.set_signed_cookie(key,value,salt='加密鹽', max_age=None, ...)(簽名cookie)

 

return rep

參數:

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傳輸

httponly=False 只能http協議傳輸,無法被JavaScript獲取(不是絕對,底層抓包可以獲取到也可以被覆蓋)

 

刪除Cookie

def logout(request):

    rep = redirect("/login/")

    rep.delete_cookie("user")  # 刪除用戶瀏覽器上之前設置的usercookie

    return rep

 

 

cookie設置參數

class HttpResponseBase:

 

        def set_cookie(self, key,       

                                         value='',             

                                      max_age=None,        超長時間 ,有效事件,max_age=20意思是這個cookie20秒后就消失了,默認時長是2,這個是以秒為單位的

                                                                                     cookie需要延續的時間(以秒為單位)

                                                                                     如果參數是\ None`` ,這個cookie會延續到瀏覽器關閉為止。

 

                                     expires=None,           超長時間,值是一個datetime類型的時間日期對象,到這個日期就失效的意思,用的不多

                                                                                         expires默認None ,cookie失效的實際日期/時間。

   

 

                                     path='/',               Cookie生效的路徑,就是訪問哪個路徑可以得到cookie'/'是所有路徑都能獲得cookie

                                                                                        瀏覽器只會把cookie回傳給帶有該路徑的頁面,這樣可以避免將  cookie傳給站點中的其他的應用。

                                                                                         / 表示根路徑,特殊的:根路徑的cookie可以被任何url的頁面訪問

        

                               domain=None,         Cookie生效的域名

                                               

                                                                你可用這個參數來構造一個跨站cookie

                                                                如, domain=".example.com"

                                                                所構造的cookie對下面這些站點都是可讀的:www.example.com www2.example.com  .other.sub.domain.example.com

                                                                如果該參數設置為 None cookie只能由設置它的站點讀取。

 

                             secure=False,           如果設置為 True ,瀏覽器將通過HTTPS來回傳cookie

                              httponly=False        只能http協議傳輸,無法被JavaScript獲取(不是絕對,底層抓包可以獲取到也可以被覆蓋)

        ): pass


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM