1. 程式人生 > >cookie session

cookie session

服務 客戶端 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