Session的定義
Session 對象存儲特定用戶會話所需的屬性及配置信息。這樣,當用戶在應用程序的 Web 頁之間跳轉時,存儲在 Session 對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。當用戶請求來自應用程序的 Web 頁時,如果該用戶還沒有會話,則 Web 服務器將自動創建一個 Session 對象。當會話過期或被放棄后,服務器將終止該會話。Session 對象最常見的一個用法就是存儲用戶的首選項。
對session的操作如下
1 from flask import Flask,session 2 import os 3 from datetime import timedelta 4 app = Flask(__name__) 5 app.config['SECRET_KEY']=os.urandom(24) #設置為24位的字符,每次運行服務器都是不同的,所以服務器啟動一次上次的session就清除。 6 app.config['PERMANENT_SESSION_LIFETIME']=timedelta(days=7) #設置session的保存時間。 7 #添加數據到session 8 #操作的時候更操作字典是一樣的 9 #secret_key:----------鹽,為了混淆加密。 10 11 12 @app.route('/') 13 def hello_world(): 14 session.permanent=True #默認session的時間持續31天 15 session['username'] = 'xxx' 16 17 return 'Hello World!' 18 19 #獲取session 20 @app.route('/get/') 21 def get(): 22 return session.get('username') 23 24 #刪除session 25 @app.route('/delete/') 26 def delete(): 27 print(session.get('username')) 28 session.pop('username') 29 print(session.get('username')) 30 return 'delete' 31 #清楚session 32 @app.route('/clear/') 33 def clear(): 34 print(session.get('username')) 35 session.clear() 36 print(session.get('username')) 37 return 'clear' 38 39 if __name__ == '__main__': 40 app.run(debug=True)
SECRET_KEY
secret_key設置成os.urandom(24)這樣的寫法再項目中不合適,因為沒次啟動服務器這個值都會改變,所以所有保存的session都失效。現在只是學習階段,所以就可以隨機產生。