demo.py(session):
# coding:utf-8
from flask import Flask, session # 导入session
app = Flask(__name__)
# flask的session需要用到的秘钥字符串 (如果用到session 必须配置该项)
app.config["SECRET_KEY"] = "Flask的秘钥字符串"
# flask默认把session保存到了cookie中 (不安全,所以要配置SECRET_KEY)
# 设置session
@app.route("/login")
def login():
# 设置/修改session数据
session["name"] = "python"
session["mobile"] = "18611111111"
return "login success"
# 获取session
@app.route("/index")
def index():
# 获取session数据
name = session.get("name") # 没有session返回None
return "hello %s" % name
# 删除session
@app.route('/delete_session')
def delete_session():
# 删除指定key的session
session.pop('name')
session.clear() # 清除所有session
return 'delete success.'
if __name__ == '__main__':
app.run(debug=True)
将session信息保存到redis中
安装Flask-Session: pip install Flask-Session
demo.py(session保存到redis中):
# coding:utf-8
from flask import Flask
import redis
from flask_session import Session # 导入
# 创建flask的应用对象
app = Flask(__name__)
class Config(object):
"""配置信息"""
SECRET_KEY = "XHSOI*Y9dfs9cshd9" # 对cookie中session_id进行混淆处理时,需要设置秘钥
# redis
REDIS_HOST = "127.0.0.1"
REDIS_PORT = 6379
# flask-session配置
SESSION_TYPE = "redis" # session保存位置。 可以是redis、mongodb、sqlalchemy、文件等(默认保存到浏览器的cookie中)
SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
SESSION_USE_SIGNER = True # 对cookie中session_id进行混淆处理
PERMANENT_SESSION_LIFETIME = 86400 # session数据的有效期,单位秒
app.config.from_object(Config)
# 利用flask-session,将session数据保存到redis中
Session(app)
@app.route("/index")
def index():
# session的设置与获取与Flask原生方式相同
return "index page"
if __name__ == '__main__':
app.run()