flask 设置session超时时间


1.在setting.py中设置好过期时间

import pymysql
from DBUtils.PooledDB import PooledDB, SharedDBConnection


class BaseConfig(object):

    SQLALCHEMY_TRACK_MODIFICATIONS = True
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:root1234@127.0.0.1:3306/ssss?charset=utf8"
    SQLALCHEMY_POOL_SIZE = 5
    SQLALCHEMY_POOL_TIMEOUT = 30
    SQLALCHEMY_POOL_RECYCLE = -1
    SECRET_KEY = "sadfasdf"
    import datetime
 PERMANENT_SESSION_LIFETIME = datetime.timedelta(days=14)  # 设置session过期时间
    SQLALCHEMY_TRACK_MODIFICATIONS= False
    PYMYSQL_POOL = PooledDB(
        creator=pymysql,  # 使用链接数据库的模块
        maxconnections=6,  # 连接池允许的最大连接数,0和None表示不限制连接数
        mincached=2,  # 初始化时,链接池中至少创建的空闲的链接,0表示不创建
        maxcached=5,  # 链接池中最多闲置的链接,0和None不限制
        maxshared=3,
        blocking=True,  # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错
        maxusage=None,  # 一个链接最多被重复使用的次数,None表示无限制
        setsession=[],  # 开始会话前执行的命令列表。如:["set datestyle to ...", "set time zone ..."]
        ping=0,
        host='127.0.0.1',
        port=3306,
        user='root',
        password='root1234',
        database='ssss',  # 链接的数据库的名字
        charset='utf8'
    )


class ProductionConfig(BaseConfig):
    DEBUG = False
    SQLALCHEMY_DATABASE_URI = ""


class DevelopmentConfig(BaseConfig):
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:root1234@127.0.0.1:3306/ssss?charset=utf8"


class TestingConfig(BaseConfig):
    pass

2.在视图函数中设置上这一句

@sf.route('/staff_login', methods=['GET', 'POST'])
def staff_login():

    if request.method == 'POST':
        name = request.form.get('name', None)
        password = request.form.get('password', None)
        print(name,password,'这是用户的信息')
        user_obj = Staffs.query.filter(Staffs.name == name).first()
        if user_obj:
            if user_obj.password == password:
                session['name'] = name
 session.permanent = True #设置session永久有效 注意这个要设置在request里边 即请求内部 return redirect('/user_info')
            else:
                return '密码错误,请重新登陆'
        else:
            return "用户名不存在"
    else:
        return render_template('login.html', )

 

这样在运行的话,就可以依据过期时间来对sessio信息进行设定来设定了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM