欢迎访问宙启技术站
智能推送

Python中如何设置和获取Session()的过期时间

发布时间:2024-01-12 08:22:43

在Python中使用Session()对象时,可以设置和获取Session的过期时间。Session通过设置过期时间来确定何时自动过期。过期时间可以通过在Session()对象中设置expires参数来实现。expires参数接受一个datetime对象作为过期时间。

下面是一个示例将过期时间设置为30分钟的例子:

from datetime import datetime, timedelta
from flask import Flask, session

app = Flask(__name__)

# 设置过期时间为30分钟
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(minutes=30)

@app.route('/')
def index():
    # 获取当前时间
    now = datetime.now()

    # 检查Session是否存在
    if 'last_visit' in session:
        # 获取Session中存储的上一次访问时间
        last_visit = session['last_visit']
    else:
        # 如果之前没有访问过,则将当前时间存储到Session中
        session['last_visit'] = now
        last_visit = now

    # 更新Session中的上次访问时间为当前时间
    session['last_visit'] = now

    # 返回上一次访问时间和当前时间的差值
    return 'Last visited: {}<br>Current time: {}'.format(last_visit, now)

if __name__ == '__main__':
    app.run()

在上面的例子中,利用Flask框架创建了一个简单的应用程序。在应用程序中,使用app.config['PERMANENT_SESSION_LIFETIME']来设置Session的过期时间为30分钟。每次访问应用程序时,先检查Session是否存在。如果存在,则获取存储的上一次访问时间,如果不存在,则将当前时间存储在Session中。然后更新Session中的上次访问时间为当前时间。最后返回上一次访问时间和当前时间的差值。

需要注意的是,Session的过期时间并不是立即过期的,而是在过期时间后的 个请求时才过期。因此,在设置和获取Session过期时间后需要进行相应的判断逻辑来确定是否过期。

除了以上例子中使用的Flask框架外,其他的Python web框架也提供了设置和获取Session过期时间的功能,在具体使用时可以参考相应的文档进行操作。