Session
Session 配置
- 从flask中导入session对象
from flask import Flask, session
- 添加SECRET_KEY到config.py
import os DEBUG = True DIALECT = 'mysql' DRIVER = 'pymysql' USERNAME = 'lotus' PASSWORD = 'ching' HOST = '192.168.2.20' PORT = '3306' DATABASE = 'demo1' SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_DATABASE_URI = '{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE) SECRET_KEY = os.urandom(24)
添加数据到Session中
@app.route('/set_session')
def set_session():
session['username'] = 'LotusChing'
return 'Set success.'
获取Session
@app.route('/get_session')
def get_session():
print(session)
return 'Session Data: {}'.format(session.get('username'))
删除Session
@app.route('/delete_session')
def delete_session():
session.pop('username')
return 'Delete success.'
清空Session
@app.route('/clear_session')
def clear_session():
session.clear()
return 'Clear success.'
查看默认Session过期时间
Chrome -> 设置 -> 隐私设置 -> 内容设置 -> Cookies -> 所有Cookie和网站数据 —> 搜索127.0.0.1,点击session,然后就可以看到浏览器中的session信息了
名字: session
内容: eyJ1c2VybmFtZSI6IkxvdHVzQ2hpbmcifQ.DIVjrQ.TJFkVjaZhx6PkD8JbqIVJ_Ob6BA
域: 127.0.0.1
路径: /
发送用途: 各种连接
脚本可访问: 否(仅 Http)
创建时间: 2017年8月28日星期一 下午4:19:57
过期时间: 浏览会话结束时
设置Session过期时间
使用默认session有效时间
@app.route('/set_session')
def set_session():
session['username'] = 'LotusChing'
session.permanent = True
return 'Set success.'
再次回到浏览器中查看session信息,这次不再是档次会话生效了,而是一个月的有效期
名字: session
内容: eyJfcGVybWFuZW50Ijp0cnVlLCJ1c2VybmFtZSI6IkxvdHVzQ2hpbmcifQ.DIVk2Q.mKeUXiLn8FYP1A5YtjiJNp03CWE
域: 127.0.0.1
路径: /
发送用途: 各种连接
脚本可访问: 否(仅 Http)
创建时间: 2017年8月28日星期一 下午4:24:57
过期时间: 2017年9月28日星期四 下午4:24:57
自定义session有效时间
在config.py中添加参数PERMANENT_SESSION_LIFETIME
,然后设置失效时间
import os
from datetime import timedelta
DEBUG = True
DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'lotus'
PASSWORD = 'ching'
HOST = '192.168.2.20'
PORT = '3306'
DATABASE = 'demo1'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_DATABASE_URI = '{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
SECRET_KEY = os.urandom(24)
PERMANENT_SESSION_LIFETIME = timedelta(days=7)
再次查看浏览器中的session信息
名字: session
内容: eyJfcGVybWFuZW50Ijp0cnVlLCJ1c2VybmFtZSI6IkxvdHVzQ2hpbmcifQ.DIVluQ.OHg1jjwM98o_IPuDTIb_M2T_WWs
域: 127.0.0.1
路径: /
发送用途: 各种连接
脚本可访问: 否(仅 Http)
创建时间: 2017年8月28日星期一 下午4:28:41
过期时间: 2017年9月4日星期一 下午4:28:41