flask中的session设置
-
cookie和session结合使用:
web
开发发展至今,cookie
和session
的使用已经出现了一些非常成熟的方案。在如今的市场或者企业里,一般有两种存储方式:- 存储在服务端:通过
cookie
存储一个session_id
,然后具体的数据则是保存在session
中。如果用户已经登录,则服务器会在cookie
中保存一个session_id
,下次再次请求的时候,会把该session_id
携带上来,服务器根据session_id
在session
库中获取用户的session
数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session
。 - 将
session
数据加密,然后存储在cookie
中。这种专业术语叫做client side session
。flask
采用的就是这种方式,但是也可以替换成其他形式。
- 存储在服务端:通过
session:Flask
中的session
是通过from flask import session
。然后添加值key和value进去即可。并且,Flask
中的session
机制是将session
信息加密,然后存储在cookie
中。专业术语叫做client side session
。
2、Flask生成SECRET_KEY(密钥)的一种简单方法
-
-
-
'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存在的目的都是为了实现状态保持.
④只是一个扩展包封装的对象.是为了对数据库进行操作.