17-会话机制

cookie 和 session

         cookie存储在本地

        session是在服务器端进行用户信息的保存,一个字典

Cookie:

# 1. 设置 : 通过response对象设置
        response = redirect(xxx)
        response = render_template(xxx)
        response = Response(xxx)
        response = make_response(xxx)
        response = jsonify(xxx)

        # 通过对象调用方法
        response.set_cookie(key, str(value), max_age=1800)
 
# 2. 获取: 通过request对象获取
        request.form.get()
        request.args.get()
        # cookie也在request对象中
        request.cookies.get(key) --->value
 
# 3. 删除: 通过response对象删除,把浏览器中的key=value删除了
       response = redirect(xxx)
       response = render_template(xxx)
       response = Response(xxx)
       response = make_response(xxx)
       response = jsonify(xxx)
       response = redirect(url_for("user.index"))
       # 通过对象的调用方法
       response.delete_cookie("uid")

         (1). 登录后设置cookie

         (2). 首页验证cookie

         (3). 退出登录 删除cookie

17-会话机制_第1张图片

17-会话机制_第2张图片 

 Session:

# 1. 使用session必须要设置配置文件(settings.py),在配置文件中添加SECRET_KEY=随机字符串
    SECRET_KEY = "HAJSDLASDNADALK"
 
# 2. 设置: 如果要使用session,需要直接导入:
     from flask import session
     session[key]=value
'''
     把session当成字典使用,因此: session[key]=value
     就会将key=value保存到session的内存空间
     并会在响应的时候自动在response中自动添加有一个cookie; session=加密后的id
'''
 
# 3. 获取
    value = session.get(key]
 '''
     用户请求页面的时候就会携带上次保存在客户端浏览器的cookie值,其中包含session=加密后的id
     获取session值的话通过session直接获取,因为session是一个字典,就可以采用字典的方式获取即可
    value = session[key] 或者 value = session.get(key]
'''
     
 
# 4. 删除
      session.clear() # (推荐)删除session的内存空间和删除cookie
      del session[key] #只会删除session中的这个键值对,不会删除session空间和cookie

         (1). settings.py 配置session随机字符串

         (2). 登录后设置cookie

         (3). 首页验证cookie

         (4). 退出登录 删除cookie

17-会话机制_第3张图片

17-会话机制_第4张图片 

17-会话机制_第5张图片 

 

你可能感兴趣的:(Flask,flask)