zoukankan      html  css  js  c++  java
  • Flask 的cookie与session

    Flask实现session的思路

    1. 客户端携带用户信息请求服务端验证。

    2. 服务端收到用户信息验证成功后,服务端再把用户信息经过严格的加密加盐生成session信息。并且把刚刚生成的session信息作为cookie的内容返回给客户端。

    3. 客户端收到以session信息为内容的cookie保存到本地。

    4. 客户端再次请求的时候会携带以session信息为内容的cookie去访问服务端,服务端取出session信息经过解密得到用户的信息

    Flask实现cookie与session

    from flask import Flask
    app = Flask(__name__)

    cookies

    from flask import Flask, make_response, request
    @app.route('/')
    def index():
        response = make_response('ok')    #先要创建一个response对象
        response.set_cookie('key','value')  #用set_cookie设置cookies
        cookies = request.cookies #获取所有cookies且以字典的形式的返回
        cookies_key = request.cookies['key']  #因为返回是cookies的字典对象所以我们可以用字典取值取出指定的cookie
        return response

    session

    # 要用session,必须app配置一个密钥
    app.secret_key  =  "adas"
    app.config['SESSION_COOKIE_NAME']="session_key"  #这是配置网页中sessions显示的key
    
    @app.route("/",)
    def index():
        #如何设置sessoion
        # 1 导入session
        # 2 给sessoion设置值
        #session本身就是个字典相当于把一个username:xxx键值对丢进去,然后Flask会把整个字典结合secret_key进行加密
        #1.生成一个随机的字符串 
        #2 往数据库存 
        #3 写入cookie返回浏览器
        session['name'] = "xxx"
        return "ok"
    
    @app.route("/login")
    def login():
        # sessions = session #获取所有session
        session_name = session["name"]#获取指定session
        # session.pop('name')  #删除session原理和字典的删除方式一样
        return "login"
    
    if __name__ == '__main__':
        app.run()

     总结:

    """
    1、全局导入session,把session,当字典存值,取就当字典取值
    2、原理之存session
        当响应要返回给客户端时候,会调用sesssion_interface中的save_session方法。把全局session字典做加密得到val,然后将这个val设置到cookie中。cookie的键为配置文件中的session_cookie_name,值就是我们session字典加密得到的结果。
    3、原理之取session
        当flask接收到请求的时候,会调用sesssion_interface中的open_session方法,该方法中从cookie中取键为配置文件中session_cookie_name的cookie值,得到这个值以后做解密。然后赋值给全局的session字典。这样我们就可以取到之前flask设置session。
    
    注意:用session必须配置app.secret_key="随便"
    """
  • 相关阅读:
    OpenGL---------BMP文件格式
    OpenGL———混合的基本知识
    OpenGL------显示列表
    OpenGL---------光照的基本知识
    OpenGL学习--------动画制作
    OpenGL------三维变换
    OpenGL学习--------颜色的选择
    OpenGL学习-------点、直线、多边形
    Windows X64汇编入门(1)
    x86 x64下调用约定浅析
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12521487.html
Copyright © 2011-2022 走看看