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都失效。现在只是学习阶段,所以就可以随机产生。