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.  
    '\xca\x0c\x86\x04\x98@\x02b\x1b7\x8c\x88]\x1b\xd7"+\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存在的目的都是为了实现状态保持.

       ④只是一个扩展包封装的对象.是为了对数据库进行操作.
 

posted on 2018-08-01 16:17  hairy_li  阅读(99)  评论(0编辑  收藏  举报

导航