赞
踩
session
中,然后把session存放到cookie中,下次请求的时候,从浏览器发来的cookie
中读取session
,再从session
中读取敏感数据,并进行解密,来获取用户数据session
机制,可以节省服务器的开销,因为把所有的信息都存储到了客户端。session
放到cookie
中,经过加密也是比较安全的。cookies:在flask中操作cookie,通过response对象来操作,可以在response返回之前,通过response.set_cookie来设置。
session:flask中的session是通过 from flask import session
。然后添加key和value进去就可以。并且,flask
中的session
机制是将session
信息加密,然后存储在cookie中。专业术语叫client side session
session
需要从flask
中导入session
,以后所有和session
相关的操作都是通过这个变量来的。session
需要设置SECRET_KEY
,用来作为加密用的,并且这个SECRET_KEY
在每次启动服务器后都变化的话,之前的session
就不能通过SECRET_KEY
来解密session
和操作字典一样。session['username']
session.pop()
session.clear()
session.get()
session
的过期时间
session
的permanent
属性为True
,那么过期时间是31天app.config
设置PERMANENT_SESSION_LEFTTIME
来更改时间,这个值的数据类型是datetime.timedelta
类型import os from datetime import timedelta import config app = Flask(__name__) # app.config.from_object(config) app.config['SECRET_KEY'] = os.urandom(24) # 做加密用的,加密一般是加密算法或者加盐 app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 添加数据到session中 # 操作session的时候,跟操作字典一样 # SECRET_KEY @app.route('/') def hello_world(): session['username'] = 'hubo' # 不指定session的过期时间,默认是浏览器关闭就结束 session.permanent = True # 默认时间是一个月 return 'Hello World!' @app.route('/get/') def get(): return session.get('username') @app.route('/delete/') def delete(): print(session.get('username')) session.pop('username') print(session.get('username')) return 'success' @app.route('/clear') def clear(): print(session.get('username')) session.clear() print(session.get('username')) return 'success' if __name__ == '__main__': app.run(debug=True)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。