zoukankan      html  css  js  c++  java
  • flask--session

    flask中的session设置

    1. cookie和session结合使用:web开发发展至今,cookiesession的使用已经出现了一些非常成熟的方案。在如今的市场或者企业里,一般有两种存储方式:

      • 存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_idsession库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session
      • session数据加密,然后存储在cookie中。这种专业术语叫做client side sessionflask采用的就是这种方式,但是也可以替换成其他形式。

    session:Flask中的session是通过from flask import session。然后添加值key和value进去即可。并且,Flask中的session机制是将session信息加密,然后存储在cookie中。专业术语叫做client side session


    2、Flask生成SECRET_KEY(密钥)的一种简单方法

    1.  
      >>> import os
    2.  
      >>> os.urandom(24)
    3.  
      'xcax0cx86x04x98@x02bx1b7x8cx88]x1bxd7"+xe6px@xc3#\'

    设置秘钥:

     

    Session 也可以设置过期时间:

     

     

    Session使用:

     

    往session 里面添加数据。此时session是相当于一个字典(dict)。

     

    然后获取session 里面的值,看看是否存在。

    那么如何删除session呢?
    可以直接使用session.pop('key',None) 即:
    session.pop('name',None)
    如果要删除session中所有数据使用:clear()即:
    session.clear()
     
    ############################

    学习flask框架涉及到的四种session

    ①状态保持session

           这个session与所有的框架和语言都无关, 就是用来实现状态保持的

    cookie和session都是基础键值对的字符串信息, session是基于cookie实现的

    ②flask上下文的session

           session是请求上下文的一种,封装了用户信息,可以对数据库中缓存的用户信息进行读写操作.

    ③flask扩展包Session

           可以通过flask-session中的Session类对②中的session信息进行一系列操作,例如储存到哪个数据库中redis/memached/filesystem/mongdb/sqlalchemy. 还有过期时间等等

    ④数据库会话对象session

           flask-sqlalchemy扩展包:封装了sql对数据库的基本操作.

           db.session.add() /add_all( )

           db.session.commit()

           db.session.delete()

           db.session.rollback()

           ①②③的session存在的目的都是为了实现状态保持.

           ④只是一个扩展包封装的对象.是为了对数据库进行操作.
     
  • 相关阅读:
    Github 上热门的 Spring Boot 项目实战推荐
    深入理解建造者模式 ——组装复杂的实例
    别死写代码,这 25 条比涨工资都重要
    Spring Boot 使用 JWT 进行身份和权限验证
    秋招打怪升级之路:十面阿里,终获offer!
    一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token
    适合新手入门Spring Security With JWT的Demo
    面试官:“谈谈Spring中都用到了那些设计模式?”。
    春夏秋冬又一春之Redis持久化
    Mysql锁机制简单了解一下
  • 原文地址:https://www.cnblogs.com/ithairy/p/9401913.html
Copyright © 2011-2022 走看看