当前位置: 首页 > news >正文

Flask表单、会话Session、Cookie完全实战

博客导语

HTTP协议是无状态协议,服务端无法识别用户身份。Cookie、Session是Web开发用户状态保持的核心方案,表单是前端数据提交的主要方式。本文详解Cookie与Session原理、区别、实战用法,搭配表单提交案例,打通用户登录、状态记忆完整流程。


一、Cookie与Session核心原理与区别

1. Cookie

存储在客户端浏览器的小型文本数据,由服务端下发,浏览器自动携带,可记录用户临时信息,不安全、容量小。

2. Session

存储在服务端的用户会话数据,通过Cookie中的session_id关联用户,安全可靠,是用户登录态保持的主流方案。


二、Cookie增删查实战

from flask import make_response, request # 设置Cookie @app.route("/set_cookie") def set_cookie(): res = make_response("Cookie设置成功") # key、value、过期时间(秒) res.set_cookie("username", "zhangsan", max_age=3600) return res # 获取Cookie @app.route("/get_cookie") def get_cookie(): username = request.cookies.get("username") return f"获取Cookie:{username}" # 删除Cookie @app.route("/del_cookie") def del_cookie(): res = make_response("Cookie删除成功") res.set_cookie("username", "", max_age=0) return res

三、Session会话配置与实战

Flask Session必须配置秘钥SECRET_KEY,用于加密会话数据,否则报错。

from flask import session # 配置秘钥(项目必备) app.config["SECRET_KEY"] = "abc123456randomkey" # 设置Session @app.route("/login") def login(): session["user_id"] = 1001 session["username"] = "张三" return "登录成功,会话已保存" # 获取Session @app.route("/user") def user(): uid = session.get("user_id") return f"当前登录用户ID:{uid}" # 清空Session(退出登录) @app.route("/logout") def logout(): session.clear() return "退出登录成功"

四、Flask表单提交实战

1. 前端表单页面

<form action="/submit" method="post"> 用户名:<input type="text" name="username"> 密码:<input type="password" name="pwd"> <button type="submit">提交</button> </form>

2. 后端接收表单数据

@app.route("/submit", methods=["POST"]) def submit(): username = request.form.get("username") pwd = request.form.get("pwd") if username == "admin" and pwd == "123456": session["username"] = username return "登录成功" return "账号密码错误"

五、核心区别与选型总结

  • Cookie:客户端存储、不安全、适合存储非敏感数据

  • Session:服务端存储、安全、适合存储用户登录态、敏感信息

  • 所有登录系统,均采用「Session+Cookie」组合方案

http://www.jsqmd.com/news/1052521/

相关文章:

  • 如何用KKManager彻底解决游戏模组管理难题:从混乱到秩序的三步革命
  • KLayout开源版图工具:面向先进集成电路设计的架构解析与技术实现
  • 2026年效率高的武汉全铝家居全屋定制/武汉全屋一站式定制/武汉全屋整装定制哪家好 - 品牌宣传支持者
  • 175、模组返修与失效分析流程:从客诉到根本原因的完整 FA 分析方法
  • 渐进式凸包简化:基于对偶表示的贪心优化算法原理与实践
  • 2026年知名的江苏DM542型电机驱动器/无刷电机驱动器/江苏BLD300型电机驱动器/江苏无刷电机驱动器定制加工厂家推荐 - 行业平台推荐
  • 嵌入式GUI进阶:emWin光标控制、抗锯齿与Unicode多语言实战
  • Mix-CALADIN:分布式计算破解混合整数规划难题
  • 优化工作时间表的Excel公式
  • 2026年热门的回收饮料设备/储罐饮料设备/梁山出售饮料设备/梁山灌装机饮料设备厂家综合对比分析 - 行业平台推荐
  • 2026新余漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 2026年比较好的海口贸易公司注册/海口科技公司注册/海口公司注册年检品牌推荐 - 行业平台推荐
  • 基于拉格朗日对偶的大模型推理预算优化:动态平衡成本与质量
  • Linux rest_init kernel_init与kthreadd启动
  • 后端开发新趋势:探索前沿技术栈的融合应用
  • CLion优化器:提升深度学习模型泛化能力的谨慎优化策略
  • mTLS客户端认证的可用性挑战:从工具设计到用户认知的全面分析
  • 提升住宅占用检测模型泛化能力:从数据工程到训练策略的实战指南
  • 基于分层智能体架构的AI模型自动化构建系统设计与实践
  • 2026年靠谱的杀菌机饮料设备/梁山杀菌机饮料设备/包装机饮料设备深度厂家推荐 - 品牌宣传支持者
  • Ruby数组:高效、安全、语义化的数据处理核心
  • ProVoice-Bench:语音智能体主动式评估框架的设计与实践
  • 2026新乡漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 2026年靠谱的做网站/定制网站/网站建设全国知名公司 - 行业平台推荐
  • 2026年比较好的济南高速切铝机/济南全自动切铝机/济南切铝机优质厂家推荐榜 - 行业平台推荐
  • 2026年热门的geo排名/geo/geo推荐高端公司推荐 - 行业平台推荐
  • emWin GUI控件实战:SCROLLBAR、SLIDER与SPINBOX的深度解析与应用
  • 2026年靠谱的泡沫包装/泡沫包装制品/成都泡沫制品源头工厂推荐 - 行业平台推荐
  • 多级蒙特卡洛梯度估计:原理、复杂度分析与优化策略
  • 基于LLM的用户体验评分预测:从非结构化评论到结构化数据资产