flask_session插件的配置参数

文章转自其他博主的分享,源链:https://www.cnblogs.com/cwp-bg/p/9339865.html

flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制。

配置参数详解

  • SESSION_COOKIE_NAME
    设置返回给客户端的cookie的名称,默认是“session”;放置在response的头部;
  • SESSION_COOKIE_DOMAIN
    设置会话的域,默认是当前的服务器,因为Session是一个全局的变量,可能应用在多个app中;
  • SESSION_COOKIE_PATH
    设置会话的路径,即哪些路由下应该设置cookie,如果不设置,那么默认为‘/’,所有的路由都会设置cookie;
  • SESSION_COOKIE_HTTPONLY
    cookie应该和httponly标志一起设置,默认为True,这个一般采用默认。
  • SESSION_COOKIE_SECURE
    cookie是否和安全标志一起设置,默认为false,这个一般采用默认。
  • PERMANENT_SESSION_LIFETIME
    设置session的有效期,即cookie的失效时间,单位是s。这个参数很重要,因为默认会话是永久性的。
  • SESSION_TYPE
    设置session保存的位置,可以有多种配置,
SESSION_TYPE = 'null'          : 采用flask默认的保存在cookie中;`
SESSION_TYPE = 'redis'         : 保存在redis中
SESSION_TYPE = 'memcached'     : 保存在memcache
SESSION_TYPE = 'filesystem'      : 保存在文件
SESSION_TYPE = 'mongodb'        : 保存在MongoDB
SESSION_TYPE = 'sqlalchemy'     : 保存在关系型数据库
  • SESSION_PERMANENT
    是否使用永久会话,默认True,但是如果设置了PERMANENT_SESSION_LIFETIME,则这个失效;
  • SESSION_USE_SIGNER
    是否为cookie设置签名来保护数据不被更改,默认是False;如果设置True,那么必须设置flask的secret_key参数;
  • SESSION_KEY_PREFIX
    在所有的会话键之前添加前缀,对于不同的应用程序可以使用不同的前缀;默认“session:”,即保存在redis中的键的名称前都是以“session:”开头;
for example:
SESSION_KEY_PREFIX = 'session:'
  • SESSION_REDIS
    如果SESSION_TYPE = ‘redis’,那么设置该参数连接哪个redis,其是一个连接对象;如果不设置的话,默认连接127.0.0.1:6379/0
for example:
SESSION_REDIS = redis.StrictRedis(host="127.0.0.1", port=6390, db=4)

一份常用的flask_session的配置

# 指明对session数据进行保护
SECRET_KEY = '123'
SESSION_USE_SIGNER = True
# 指明保存到redis中
SESSION_TYPE = "redis"  
SESSION_REDIS = redis.StrictRedis(host="127.0.0.1", port=6390, db=4)
# session的有效期,单位:秒
PERMANENT_SESSION_LIFETIME = 7200

flask_session的基本使用

# extensions.py
# 创建一个session对象
from flask_session import Session
# 创建一个Session的实例
session = Session()

# 在app初始化时初始化session对象,即加载配置
# __init__.py
from flask import Flask
app = Flask(__name__)
session.init_app(app=app)

#但是在使用的时候用的是flask的应用上下文对象session
# task.py
from Flask import session

@app.route('/test', methods=['POST'])
def test():
session.get('user',None)
return ""

更详细的介绍请参考:
https://flask-session.readthedocs.io/en/latest/
`

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容