會話控制 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 '刪除成功'