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

📅 2026/6/21 3:57:55 ✍️ 编辑团队 👁️ 阅读次数
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_age3600) 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_age0) 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 methodpost 用户名input typetext nameusername 密码input typepassword namepwd button typesubmit提交/button /form2. 后端接收表单数据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服务端存储、安全、适合存储用户登录态、敏感信息所有登录系统均采用「SessionCookie」组合方案