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