session
- 会话对象,它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名。
设置密钥:
app.secret_key = 'Xqw1UfUwQV6LVfxY3y5Oc3c0ji/zkEW7loXqznZbXNU='
密钥应该足够随机,这里我们可以通过uuid来生成:
In [1]: import base64,uuid In [2]: base64.b64encode(uuid.uuid4().bytes+uuid.uuid4().bytes).decode() Out[2]: 'bMSQkw+tTWCiJTiCpogsc3V3Ai/s/0Eam5/2btXAg7g='
会话过期时间设置:
- 默认会话过期时间为关闭浏览器
- 开启会话过期时间,session.permanent = True,默认31天。
- 会话过期时间开启后,还可自定义过期时间(permanent_session_lifetime),timedelta类型,例:app.permanent_session_lifetime = timedelta(days=7)
示例:
from flask import Flask, session, redirect, url_for, escape, request,render_template from datetime import timedelta app = Flask(__name__) app.secret_key = 'Xqw1UfUwQV6LVfxY3y5Oc3c0ji/zkEW7loXqznZbXNU=' @app.route('/') def index(): if 'username' in session: return '登录用户:%s' % escape(session['username']) return '您尚未登录!' @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': session.permanent = True app.permanent_session_lifetime = timedelta(days=1) #设置会话过期时间为1天 session['username'] = request.form['username'] return redirect(url_for('index')) return render_template('login.html') @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('index')) if __name__ == "__main__": app.run()
escape()函数是对字符串进行转义
原文地址:https://www.cnblogs.com/Elite-Wang/p/14214349.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。