美文网首页
Flask--session

Flask--session

作者: Gavininn | 来源:发表于2019-06-03 16:46 被阅读0次

    允许设置session到指定存储的空间中, 文档:

    安装命令: https://pythonhosted.org/Flask-Session/

    pip install flask-Session
    

    使用session之前,必须配置一下配置项:

    SECRET_KEY = "*(%#4sxcz(^(#$#8423" # session秘钥
    

    redis保存session的基本配置

    配置文件信息:

    import redis
    class Config(object):
        DEBUG = True
        SECRET_KEY = "*(%#4sxcz(^(#$#8423"
        # 数据库链接配置:
        #数据类型://登录账号:登录密码@数据库主机IP:数据库访问端口/数据库名称
        SQLALCHEMY_DATABASE_URI = "mysql://root:123@127.0.0.1:3306/flask_students"
        # 设置mysql的错误跟踪信息显示
        SQLALCHEMY_TRACK_MODIFICATIONS = True
        # 打印每次模型操作对应的SQL语句
        SQLALCHEMY_ECHO = True
        # 把session保存到redis中
        # session存储方式为redis
        SESSION_TYPE="redis"
        # 如果设置session的生命周期是否是会话期, 为True,则关闭浏览器session就失效
        SESSION_PERMANENT = False
        # 是否对发送到浏览器上session的cookie值进行加密
        SESSION_USE_SIGNER = False
        # 保存到redis的session数的名称前缀
        SESSION_KEY_PREFIX = "session:"
        # session保存数据到redis时启用的链接对象
        SESSION_REDIS = redis.Redis(host='127.0.0.1', port='6379')  # 用于连接redis的配置
    

    主文件信息main.py,代码:

    from flask import Flask
    from config import Config
    from flask_session import Session
    from flask import session
    app = Flask(__name__,template_folder='templates')
    app.config.from_object(Config)
    
    Session(app)
    
    @app.route("/")
    def index():
        return "ok"
    
    @app.route("/set_session")
    def set_session():
        """设置session"""
        session["username"] = "小明"
        return "ok"
    
    if __name__ == '__main__':
        app.run()
    

    SQLAlchemy存储session的基本配置

    需要手动创建session表,在项目第一次启动的时候,使用db.create_all()来完成创建。

    db = SQLAlchemy(app)
    
    app.config['SESSION_TYPE'] = 'sqlalchemy'  # session类型为sqlalchemy
    app.config['SESSION_SQLALCHEMY'] = db # SQLAlchemy对象
    app.config['SESSION_SQLALCHEMY_TABLE'] = 'session' # session要保存的表名称
    app.config['SESSION_PERMANENT'] = True  # 如果设置为True,则关闭浏览器session就失效。
    app.config['SESSION_USE_SIGNER'] = False  # 是否对发送到浏览器上session的cookie值进行加密
    app.config['SESSION_KEY_PREFIX'] = 'session:'  # 保存到session中的值的前缀
    
    Session(app)
    

    相关文章

      网友评论

          本文标题:Flask--session

          本文链接:https://www.haomeiwen.com/subject/jwzcxctx.html