Flask會話控制Cookie和Session

會話控制 COOKIE SESSION

爲什麼會有cookie和session?---http協議爲無狀態協議

什麼是http協議?---超文本傳輸協議

1、 cookie

主體結構

Response.set_cookie(
    key,
    value,
    max_age=None,設置過期時間 單位爲秒
    expires=None,以秒爲單位的壽命
    path = '/'
)

設置cookie 存活時間爲當期瀏覽結束

#設置cookie 不設置過期時間
@app.route('/set_cookie/')
def setCookie():
    res = make_response('設置cookie')
    res.set_cookie('name','zhangsan')
    return res
設置cookie並設置過期時間
#設置cookie 並設置過期時間
@app.route('/set_cookie/')
def setCookie():
    res = make_response('設置cookie')
    # res.set_cookie('name','zhangsan',max_age=60) #設置當期cookie存活時間爲1分鐘
    life_time = time.time()+60
    res.set_cookie('name','zhangsan',expires=life_time) #設置當期cookie存活時間爲1分鐘
    return res

獲取cookie

#查看cookie
@app.route('/get_cookie/')
def get_cookie():
    myCookie = request.cookies #獲取所有cookie
    print(myCookie)
    return 'key爲name的值爲{}'.format(myCookie.get('name'))
刪除cookie
#刪除cookie
@app.route('/del_cookie/')
def del_cookie():
    res = make_response('刪除cookie')
    res.delete_cookie('name') #刪除key爲name的cookie
    return res


2、 session

服務器要識別來自同一個用戶的請求 依賴與cookie 訪問者在第一次請求 服務器的時候 服務器會在其cookie中 設置唯一的sessionId值 服務器就可以通過唯一的sessionid來去區分不同用戶的請求(訪問) 需要使用secret_key 進行加密。

導入

from flask import session

設置session 默認存活爲當期瀏覽會話結束

#設置session
@app.route('/set_session/')
def set_session():
    session['uid'] = '1'
    return '設置session'

設置sesison存活時間

#設置session 設置過期時間
@app.route('/set_session/')
def set_session():
    #開啓session持久化存儲
    session.permanent = True
    #設置session存活時間爲1分鐘  如果不給當期的存活時間 則爲1個月
    app.permanent_session_lifetime = timedelta(seconds=60) 
    session['uid'] = '1'
    return '設置session'

獲取session

#獲取session
@app.route('/get_session/')
def get_session():
    return 'uid的值爲{}'.format(session.get('uid'))
刪除session
#刪除session
@app.route('/del_session/')
def del_session():
    #刪除key爲uid的session值
    # session.pop('uid')
    #刪除所有session
    session.clear()
    return '刪除成功'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章