• flask之session


    一、flask的session

    cookie:存放在客户端的键值对
    session:存放在客户端的键值对
    token:存放在客户端,通过算法来校验
    

    再使用session之前必须设置一下密钥

    app.secret_key="asdas" #值随便
    

    使用session

    设置:session['username'] = 'xxx'
    #在django中发什么三件事,1,生成一个随机的字符串 2 往数据库存 3 写入cookie返回浏览器
    #在flask中他没有数据库,但session是怎样实现的?
        # 生成一个密钥写入这个cookie,然后下次请求的时候,通过这个cookie解密,然后赋值给session
        #我们通过app.session_interface来查看
    '''
    1 app.session_interface
    2 save_session
        1. val = self.get_signing_serializer(app).dumps(dict(session))
        把session['name'] = "jason"加密,是把session整体字典做加密,得到val
        2. 以配置文件的SESSION_COOKIE_NAME做为cookie的key,存cookie值
        
    3 open_session
        1. 以配置文件的SESSION_COOKIE_NAME做为cookie的key,去取cookie值,val密文
        从request.cookies拿到我们密文
        把session整体字典密文做解密,得到session
    '''
    删除:session.pop('username', None)
    

    app.session_interface中save_session的参数(设置cookie的参数)

    key, 键
    value='', 值
    max_age=None, 超时时间 cookie需要延续的时间(以秒为单位)如果参数是 None`` ,这个cookie会延续到浏览器关闭为止
    expires=None, 超时时间(IE requires expires, so set it if hasn't been already.)
    path='/', Cookie生效的路径,/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问,浏览器只会把cookie回传给带有该路径的页面,这样可以避免将cookie传给站点中的其他的应用。
    domain=None, Cookie生效的域名 你可用这个参数来构造一个跨站cookie。如, domain=".example.com"所构造的cookie对下面这些站点都是可读的:www.example.com 、 www2.example.com 和an.other.sub.domain.example.com 。如果该参数设置为 None ,cookie只能由设置它的站点读取
    secure=False, 浏览器将通过HTTPS来回传cookie
    httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
    

    session源码的执行流程

    -save_seesion
        -响应的时候,把session中的值加密序列化放到了cookie中,返回到浏览器中
    -open_session
        -请求来了,从cookie中取出值,反解,生成session对象,以后再视图函数中直接用sessoin就可以了。
    
  • 相关阅读:
    20172315 2017-2018-2 《程序设计与数据结构》第一周学习总结
    预备作业03
    寒假作业02
    寒假作业01
    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周
    20172310 2017-2018-2 《程序设计与数据结构》第八周学习总结
    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第一周
    20172310 《程序设计与数据结构》实验二报告
    20172310 2017-2018-2 《程序设计与数据结构》第七周学习总结
    20172310 2017-2018-2 《程序设计与数据结构》第六周学习总结
  • 原文地址:https://www.cnblogs.com/XuChengNotes/p/12149305.html
Copyright © 2020-2023  润新知