欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > Flask 设置session 自定义登录验证

Flask 设置session 自定义登录验证

2024/10/25 5:19:34 来源:https://blog.csdn.net/nnjy_1993/article/details/142319353  浏览:    关键词:Flask 设置session 自定义登录验证
"""1. 设置session# 设置session成功 重定向到首页session.permanent = True  # 设置会话过期时间session['info'] = usernamereturn redirect(url_for('index'))2. 获取sessioninfo = session.get('info', default=0)return render_template('index.html', info=info)3. 设置session会话有效期1. session.permanent = True  # 设置会话过期时间2. # 两种设置会话有效期时间方法# app.permanent_session_lifetime = datetime.timedelta(days=2)  # 会话有效期2天app.permanent_session_lifetime = 60 * 60 * 24 * 7  # 会话有效期7天4. 删除session# 删除会话session.pop('info', None)return redirect(url_for('login'))"""

 

 

 

 


import datetimefrom flask import Flask, render_template, redirect, url_for, request, session, make_response, Response
from functools import wrapsdef auth(fn):@wraps(fn)def inner(*args, **kwargs):if not session.get('info', None):return redirect(url_for('login'))return fn(*args, **kwargs)return innerapp = Flask(__name__)
app.secret_key = "ghakjhkghkahkhgkhalkfdngkasnkglhaj"
# 两种设置会话有效期时间方法
# app.permanent_session_lifetime = datetime.timedelta(days=2)  # 会话有效期2天
app.permanent_session_lifetime = 60 * 60 * 24 * 7  # 会话有效期7天
print(app.url_map)@app.route('/')
@app.route('/index', methods=["GET", "POST"])
@auth
def index():# 获取会话info = session.get('info', default=0)return render_template('index.html', info=info)@app.route('/login', methods=["GET", "POST"])
def login():if request.method == "POST":username = request.form.get('username', None)password = request.form.get('password', None)confirm_password = request.form.get('confirm_password', None)if not username or not password or not confirm_password:return render_template('login.html', errors="不能为空")elif not username:return render_template('login.html', errors="用户名有误")elif password != confirm_password:return render_template('login.html', errors="密码不一致")elif username == "root" and password == "123":# 设置session成功 重定向到首页session.permanent = True  # 设置会话过期时间session['info'] = usernamereturn redirect(url_for('index'))else:return render_template('login.html', errors="账号或密码有误")return render_template('login.html')@app.route('/logout', methods=["GET", "POST"])
@auth
def logout():# 删除会话session.pop('info', None)return redirect(url_for('login'))@app.route('/test')
@auth
def test():return "测试"if __name__ == '__main__':app.run(debug=True)

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com