快速理解记忆cookie和session
Flask笔记
cookie是由服务端⽣成的,发送给客户端,客户端保存,下次登录在请求报⽂中带上cookie数据;
在客户端(浏览器)进⾏状态保持,建议不存重要敏感信息, cookie基于域名安全,不同域名的cookie间不能相互访问1.1设置cookie
1. 登录请求成功后,使⽤cookie记录⽤户信息;
2. 借助response对象设置cookie信息
3)返回响应对象在浏览器中保存cookie
response = make_response('login success')
response.set_cookie('username',' Mercury', max_age=3600)
return response
1.2 提取cookie
1)浏览器再次请求⾸页的时候⾃动带上cookie,提取cookie中的键值对
2)借助request对象提取cookie
user_id = ('user_id','')
return'index %s'% user_id
1.3清除cookie
1. 登出成功,清除cookie记录⽤户信息
2. 借助response对象删除cookie信息
response = make_response('logout success')
response.delete_cookie('user_id')
return response
2.session()
敏感信息建议存储于服务端,⽽在服务端进⾏状态保持的是session
2.1session依赖于cookie
底层:
1)浏览器发出登录请求成功后,在服务器记录⽤户信息:session_id =1234,
“user_id” : 1, “username”: “Mercury”
from flask import session
...
# session本质是个字典
session['use_id']='1'
session['username']='Mercury'
return'login success'
2)返回响应对象给浏览器,通过cookie携带session_id告诉浏览器已保存session,并把两者保存在浏览器中3) 再次访问时,通过cookie带上session_id, 拿了session_id便可在服务端提取session的键值对
from flask import session
...
username = ('username')
user_id = ('user_id')
return'index %s %s'%(username, user_id)
4)推出登陆时,删除session字典session怎么记忆
session.pop('user_name','')# 重复删除了,便返回空
session.pop('user_id','')
return'logout success'
2.2session要设置加密字符串session_key
如上操作后会报RuntimeError错,解决⽅式如下:
# 1.创建配置类
class Config(object):
# 加密字符串随意写,起混淆加密处理
SECRET_KEY ='aslugbgliauef&if*af'
# 2.创建app对象
app = Flask(__name__)
# 3.将配置类中的配置信息读取到项⽬中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论