python 框架Flask學習筆記之session


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都失效。現在只是學習階段,所以就可以隨機產生。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM