Session

Session 配置

  1. 从flask中导入session对象
     from flask import Flask, session
    
  2. 添加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)
创建时间:    2017828日星期一 下午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)
创建时间:    2017828日星期一 下午4:24:57
过期时间:    2017928日星期四 下午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)
创建时间:    2017828日星期一 下午4:28:41
过期时间:    201794日星期一 下午4:28:41

results matching ""

    No results matching ""