Cookie 是存放在使用者電腦中的小檔案,
而且是明碼存放,
不適合儲存私密資料,例如:信用卡號、密碼等等,
在使用上有限制:
- 瀏覽器只能儲存並使用300個cookie
- 同一個伺服器只能存取20個cookie
- cookie 必須小於 4k bytes
今天就來教大家如何使用 Django cookie :
Django cookie 處理範例
首先在 Chrome瀏覽器按 F12,在上方工具列找到 Application ,
在左方的 Storage 找到 Cookies,
選擇目前的網址就能在右方看到目前的cookies,
定義 check_cookie 如下:
def check_cookie(request): if 'test_counter' not in request.COOKIES: tmpcounter = 1 msg = 'create counter' else: tmpcounter = int(request.COOKIES['test_counter']) tmpcounter = tmpcounter + 1 msg = 'counter = ' + str(tmpcounter) res = HttpResponse(msg) res.set_cookie('test_counter', tmpcounter) return res
if 計數器不存在:
將計數器設為 1
else :
將計數器+1
最後使用 set_cookie 將其存到 cookie 中,
下圖為第一次執行 check_cookie , 因為 cookie 不存在所以需要建立一個:
第二次執行時,
由於 cookie 已經存在,
故僅顯示目前次數
刪除的話也很簡單,
先檢查 cookie 是否存在,
若存在就刪除 cookie 並顯示刪除的值,
不存在就顯示 No cookie
def del_cookie(request): if 'test_counter' in request.COOKIES: msg = 'del counter, value = ' + str(request.COOKIES['test_counter']) res = HttpResponse(msg) res.delete_cookie('test_counter') return res else: return HttpResponse('No cookie')
底下為執行的畫面,
當存在 cookie 就顯示目前值後刪除:
若此 cookie 不存在的話,
顯示 No cookie
set_cookie(key,value='',max_age=None,expires=None)
的語法如上,
由於 cookie 是以 dict 方式存放,
故第一個與第二個參數放置 cookie 的 key值與 value 值,
max_age 單位為秒數,設定 cookie 存在的時間
expires 單位為 date time ,超過設定的時間, cookie 就會失效。
刪除的語法就比較簡單了:
delete_cookie('key值')
只需要指定 cookie 的 key 值即可。
cookie 與 session 常都是同時提起的,
不過在此就留待下回分解吧,
這裡是不及格研究室,
沒有留言:
張貼留言