共计 1452 个字符,预计需要花费 4 分钟才能阅读完成。
在使用 flask 写应用程序的时候,我们会使用 session 来控制用户会话状态,但是我们无法确定 session 的保存位置,默认的 flask 保存 session 是模糊的,那我们可不可以控制 session 的存储位置呢,这就是 flask-session: 增加了服务器端支持会话到您的应用程序.
安装 flask-session
pip install flask-session
使用
from flask import Flask,session
from flask_session import Session
from redis import StrictRedis
app=Flask(__name__)
app.config[‘DEBUG’]=True
app.config[‘SESSION_TYPE’]=’redis’ // 设置会话接口
app.config[‘SESSION_REDIS’]=StrictRedis(host=’localhost’, port=6379,decode_responses=True) // 配置连接 redis
Session(app) // 装载 app 到 Session
@app.route(“/set/”)
def set():
session[‘key’]=’value’
return ‘save session’
@app.route(“/get/”)
def get():
return session.get(‘key’,’not set’)
if __name__=”__main__”:
app.run(debug=app.config[‘DEBUG’])
会话接口及对应的连接配置
一般情况下我们配置好 SESSION_TYPE, 然后把连接配置配置一下就可以。
null:NullSessionInterface(默认)
redis:RedisSessionInterface 连接配置:SESSION_REDIS:一个 redis.Redis 例如,默认连接到 127.0.0.1:6379
memcached:MemcachedSessionInterface 连接配置:SESSION_MEMCACHED:一个 memcache.Client 实例,默认连接到 127.0.0.1:11211
filesystem:FileSystemSessionInterface 连接配置:SESSION_FILE_DIR:存储会话文件的目录。默认使用当前工作目录下的 flask_session 目录。连接配置:SESSION_FILE_THRESHOLD:会话在开始删除之前存储的最大项目数,默认值为 500 连接配置:SESSION_FILE_MODE:存会话文件所需的文件模式,默认为 0600
mongodb:MongoDBSessionInterface 连接配置:SESSION_MONGODB:一个 pymongo.MongoClient 实例,默认连接到 127.0.0.1:27017 连接配置:SESSION_MONGODB_COLLECT:您要使用的 MongoDB 集合,默认为“sessions”
SQLAlchemy:SqlAlchemySessionInterface 连接配置:SESSION_SQLALCHEMY:flask_sqlalchemy.SQLAlchemy 实例,其数据库连接 URI 是使用配置 SQLALCHEMY_DATABASE_URI 参数连接配置:SESSION_SQLALCHEMY_TABLE:要使用的 SQL 表的名称,默认为“sessions”