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机器学习 电子书。