前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flask 中会话过期时间和刷新时间的设置

flask 中会话过期时间和刷新时间的设置

作者头像
测试开发囤货
发布2024-07-02 17:45:48
580
发布2024-07-02 17:45:48
举报
文章被收录于专栏:测试开发囤货测试开发囤货

flask 中会话过期时间和刷新时间的设置

在 flask 应用程序中,会话(session)是一种用于存储和跟踪用户数据的机制。

接下来将介绍如何在 flask 中设置会话的过期时间和刷新时间.

设置会话的过期时间

要设置会话的过期时间,您可以使用 flask 的 app.permanent_session_lifetime 属性,该属性表示会话的持续时间,以秒为单位。

代码示例:

代码语言:javascript
复制
from flask import flask

app = flask(__name__)
app.secret_key = 'your_secret_key'
app.permanent_session_lifetime = 3600  # 设置为 1 小时

# 其他路由和视图函数...

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

在上述示例中,我们将 app.permanent_session_lifetime 设置为 3600 秒(1 小时)。这意味着会话数据将在 1 小时后过期。

设置会话的刷新时间

会话的刷新时间是指每次用户访问应用程序时,会话的过期时间会重置,从而延长会话的有效期。

代码示例:

代码语言:javascript
复制
from flask import flask, session, request

app = flask(__name__)
app.secret_key = 'your_secret_key'

@app.before_request
def before_request():
    session.modified = True

# 其他路由和视图函数...

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

在上面的示例中,我们使用 @app.before_request 装饰器注册一个函数 before_request()。在每次请求之前,before_request() 函数会被调用,将 session.modified 设置为 True,以确保会话的刷新。这样,每次用户发起请求时,会话的过期时间都会被重置。

综合示例

下面是一个综合示例,展示了如何在 flask 中设置会话的过期时间和刷新时间,并实现用户登录和注销功能。

代码语言:javascript
复制
from flask import flask, render_template, request, redirect, url_for, session

app = flask(__name__)
app.secret_key = 'your_secret_key'

# 模拟用户数据库
users = {
    'user1': 'password1',
    'user2': 'password2',
    'user3': 'password3'
}

@app.route('/')
def index():
    if 'username' in session:
        return f'Hello, {session["username"]}! <a href="/logout">Logout</a>'
    else:
        return 'Hello, guest! <a href="/login">Login</a>'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if username in users and users[username] == password:
            session['username'] = username
            session.permanent = True  # 设置会话为永久会话
            return redirect(url_for('index'))
        else:
            return 'Invalid username or password'
    return render_template('login.html')

@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('index'))

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

上面的示例中,我们设置了会话的过期时间为默认值(31 天)并将会话标记为永久会话。在用户登录时,会话的过期时间会重置,从而实现会话的刷新。用户可以通过访问 /login 路由来进行登录,访问 /logout 路由来进行注销。

最后

简单不

这样我们就实现会话的过期时间和刷新时间的设置,以及基本的简单的用户登录和注销功能!

关注「测试开发囤货」公众号回复「AI」,送你一套 Python机器学习 电子书。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发囤货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • flask 中会话过期时间和刷新时间的设置
    • 设置会话的过期时间
      • 设置会话的刷新时间
        • 综合示例
          • 最后
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档