
Flask--session
客户端第一次访问服务器时,浏览器通过发送-cookie请求到服务器 服务器接收到请求后,会创建一个新的 session,并将 敒 داده 加密后存储到这个 session 中 服务器完成处理后,将 session 的信息通过 Set-Cookie 头部字段返回给客户端 客户端将接收到的 cookie 记录下来,并在后续请求时发送给服务器 服务器根据 cookie 读取 session 数据,解密敏感数据,从而获取用户信息 服务器无需存储 sessions ASCII session 内存占用极低 敒 数据 加密 使用 strong 加密算法 获取 session 变量:
发布日期:2021-05-14 12:21:23
浏览次数:12
分类:精选文章
本文共 2150 字,大约阅读时间需要 7 分钟。
Flask-Session技术深入解析
一、什么是Flask session?
Flask session是一种轻量级的 tutti session 处理机制,主要用于存储临时用户数据。与其他 session 系统不同,Flask session 操作更加简便且高效。
二、session的工作机制
session 的工作原理可以分为以下几个步骤:
三、session的优点
使用 Flask 的 session 有以下几个显著优势:
四、session操作方法
在 Flask 中操作 session 的基本方法包括:
session.get(key)
- 设置 session 变量:
- 删除 session 右值:
- 清空 session:
- 获取 session 的创建时间:
- 未设置过期时,默认为浏览器关闭时自动过期
- 设置
PERMANENT_SESSION_LIFETIME
可以指定 session 的有效天数 - 如果使用
permanent=True
告知,session 会在浏览器过期前自动刷新获取新 session
session[key] = value
session.pop(key)
session.clear()
session.modified
五、session的有效时间管理
Flask 提供了 严格控制 session 过期时间的方法:
六、基于 session 的案例代码
示例代码一:用户认证系统
from flask import Flask, request, session, abortimport osapp = Flask(__name__)app.config['SECRET_KEY'] = os.urandom(24)@app.route('/')def index(): if not session.get('name'): abort(401) return 'Hello World'@app.route('/login')def login(): name = request.args.get('name') pwd = request.args.get('pwd') if name == 'zhangsan' and pwd == '123456': session['name'] = name return '登录成功' return '用户名或密码错误'@app.route('/logout')def logout(): session.pop('name', None) return '退出成功'
示例代码二:Session 数据持久化
from flask import Flask, session, render_templateimport datetimeapp = Flask(__name__)app.config['SECRET_KEY'] = os.urandom(24)app.config['PERMANENT_SESSION_LIFETIME'] = datetime.timedelta(days=7)@app.route('/')def index(): if 'username' not in session: return redirect(urlfor='login') return render_template('home.html', username=session['username'])
七、基于session的权限控制
在 Flask 应用中,可以利用 session 较为灵活地实现权限受控:
from flask import Flask, request, session, abortimport osapp = Flask(__name__)app.config['SECRET_KEY'] = os.urandom(24)@app.route('/')def index(): if session.get('权限级别') != '管理员': abort(403) return '系统管理界面'
以上内容完整涵盖了 Flask session 的核心知识点。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月17日 03时48分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
最大的和
2019-03-11
跳台阶
2019-03-11
另类加法,走方格的方案数,最近公共祖先
2019-03-11
线程学习5
2019-03-11
[Java Path Finder][JPF学习笔记][7]JPF输出详细程度设置
2019-03-11
GitHub完整记录数据库GHTorrent的下载和安装经验
2019-03-11
SKLearn中SVM参数自动选择的最简单示例(使用GridSearchCV)
2019-03-11
设计模式—— 三:依赖倒置原则
2019-03-11
SpringBoot打包之后乱码
2019-03-11
RabbitMQ配置
2019-03-11
因SGA分配错误无法启动数据库
2019-03-11
Oracle修改字段类型方法总结
2019-03-11
ORA-00020 超过当前最大连接数
2019-03-11
合理控制oracle数据库具有DBA权限的用户
2019-03-11
oracle中scope参数
2019-03-11
【Android】源码分析 - Activity启动流程
2019-03-11
喝红茶是否会上火
2019-03-11
数据请求结构和返回结构
2019-03-11
Android进阶解密读书笔记1——第1章:Android系统架构
2019-03-11