cookie session
阿新 • • 發佈:2018-09-11
服務 客戶端 req () cto 存儲 設置 max 沒有
cookie
# views.py def login(request): # 登陸頁面 if request.mothod == ‘POST‘: name = request.POST.get(‘user‘) pwd = request.POST.get(‘pwd‘) if name == ‘yuan‘ and pwd == ‘123‘: ret = redirect(‘/index/‘) ret.set_cookie(‘key‘,‘value‘) # 登陸成功後,給cookie賦一組鍵值對
#ret.set_cookie(‘username‘,‘yuan‘,max_age=10,expires=datetime.datetime.utcnow()+datetime.timedelta(days=3))
# max_age設置cookie過期時間為10秒,expires設置cookie過期時間為3天(針對不同瀏覽器,需要同時設置這兩個值,並設置為一樣) return ret
def index(request):
# if request.COOKIES.get(‘key‘,None): # 判斷用戶是否有cookie設置的key
if request.COOKIES.get(‘key‘,None)==‘value‘: # 獲取cookie的值,判斷key是否為value,None代表取不到時以None代替,這樣不報錯
return render(request,‘index.html‘,locals())
else:
return redirect(‘/login/‘)
session(django的session默認存儲在數據表中)
# views.py def login(request): # 登陸頁面 if request.mothod == ‘POST‘: name = request.POST.get(‘user‘) pwd = request.POST.get(‘pwd‘) if name == ‘yuan‘ and pwd == ‘123‘: request.session[‘is_login‘]=True # 創建兩個session
request.session[‘user‘]=name
return redirect(‘/index/‘)def index(request): if request.session.get(‘is_login‘,None): # 獲取session的值,判斷is_login是否有值 name = request.session.get(‘user‘)
return render(request,‘index.html‘,locals()) else: return redirect(‘/login/‘)
下面我們再來最後的總結一下cookie和session的知識點
一、操作Cookie
獲取cookie:request.COOKIES[key]
設置cookie:response.set_cookie(key,value)
由於cookie保存在客戶端的電腦上,所以,jquery也可以操作cookie。
<script src=‘http://830909.blog.51cto.com/static/js/jquery.cookie.js‘></script> $.cookie("list_pager_num", 30,{ path: ‘/‘ });
二、操作Session(session默認在服務器端保存15天)
獲取session:request.session[key]
設置session:reqeust.session[key] = value
刪除session:del request.session[key]
(這個刪除其實就是把數據庫的session_data更新為一個其他的值了,並沒有立即刪除)
request.session.set_expiry(value) * 如果value是個整數,session會在此秒數後失效。 * 如果value是個datatime或timedelta,session就會在這個時間後失效。 * 如果value是0,用戶關閉瀏覽器session就會失效。 * 如果value是None,session會依賴全局session失效策略。
cookie session