一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密

news/2025/2/25 2:49:54/

锋哥原创的Flask3  Python Web开发 Flask3视频教程:

2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

HTTP是无状态(stateless)协议。也就是说,在一次请求响应结束后,服务器不会留下任何关于对方状态的信息。但是对于某些Web程序来说,客户端的某些信息又必须被记住,比如用户的登录状态,这样才可以根据用户的状态来返回不同的响应。为了解决这类问题,就有了Cookie技术。Cookie技术通过在请求和响应报文中添加Cookie数据来保存客户端的状态信息。Cookie其实就是保存在客户端浏览器上的小型文本数据。

我们通过响应对象response的set_cookie()方法来实现添加cookie。set_cookie()方法的参数

属性说明
keycookie的键(名称)
valuecookie的值
max_agecookie被保存的时间数,单位为秒;默认在用户会话结束(即关闭浏览器)时过期
expires具体的过期时间,一个datetime对象或UNIX时间戳
path限制cookie只在给定的路径可用,默认为整个域名
domain设置cookie可用的域名
secure如果设为True,只有通过HTTPS 才可以使用
httponly如果设为True,禁止客户端JavaScript获取cookie

示例:

python">@app.route('/cookie')
def set_cookie():response = make_response()response.set_cookie('username', 'jack')return response

那如何获取浏览器客户端里的cookie呢?

我们可以通过请求对象request的cookies属性对象的get()方法获取

python">@app.route('/getcookie')
def get_cookie():return request.cookies.get('username')

但是我们发现会发现个问题,用明文存储在客户端浏览器数据,很容易被窃取泄露数据。不安全。

所以我们有必要对数据进行加密。flask提供了会员对象session来实现cookie加密。

首先我们设置秘钥,随机串即可,越复杂越安全。

python"># 设置秘钥
app.secret_key = 'ljfda32@2334_ss'

然后直接用session对象存cookie

python">@app.route('/cookie')
def set_cookie():# response = make_response()# response.set_cookie('username', 'jack')session['password'] = 123456return 'ok'

获取cookie代码实例:

python">@app.route('/getcookie2')
def get_cookie2():print('username:', session['password'])return 'ok'


http://www.ppmy.cn/news/1574748.html

相关文章

设计模式-observer模式(观察者模式)

解释 观察者模式用于建立对象间的一对多依赖,当主题(Subject)状态变化时,所有观察者(Observers)自动收到通知。 Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个…

PHP集成软件用哪个比较好?

在Windows环境下,使用PHP时,通常需要一个集成开发环境(IDE)或者集成软件来简化开发和调试过程。以下是几款常用且推荐的PHP集成软件,每款都有其特点,可以根据需求进行选择: 1. XAMPP 特点&…

【DeepSeek 行业赋能】从金融到医疗:探索 DeepSeek 在垂直领域的无限潜力

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

蓝桥杯 Java B 组 之堆的基础(优先队列实现 Top K 问题)

Day 6:堆的基础(优先队列实现 Top K 问题) 📖 一、什么是堆(Heap)? 堆(Heap) 是一种特殊的二叉树结构,满足: 最大堆(Max Heap&#…

智联招聘爬虫

使用Python和Selenium进行招聘信息爬取 在当今数字化时代,数据已成为企业决策的重要依据。对于人力资源部门或求职者而言,获取最新的招聘信息至关重要。然而,手动浏览和收集招聘信息不仅耗时费力,而且效率低下。为了解决这个问题&…

Keeppalived 实现Nginx 的高可用集群

一、实验介绍 1、 本实验将通过 Keepalived 来实现 Nginx 的 HA 集群,当集群中的主服务器发生故障后,业务自动切换到备用主机上。 2、实验组网介绍:本实验由三台虚拟机(这里131.19为MASTER 131.20为BACKUP)组成&…

C#中级教程(2)——走进 C# 面向对象编程:从基础到进阶的深度探索

一、为什么选择面向对象编程 在软件开发的演进过程中,随着程序规模和复杂度的不断增加,传统的编程方式逐渐暴露出局限性。面向对象编程应运而生,它就像是一位智慧的组织者,将程序中的功能进行模块化划分。每个模块各司其职&#x…

前端防重复请求终极方案:从Loading地狱到精准拦截的架构升级

🔥 事故现场还原:疯狂点击引发的血案 凌晨1点23分,监控系统突然告警: 📉 服务器CPU飙升至98% 🗃️ 数据库出现3000脏数据 💥 用户端弹出上百个错误弹窗 事故原因:黑产脚本通过0.5秒…