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

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

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

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

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

属性 说明
key cookie的键(名称)
value cookie的值
max_age cookie被保存的时间数,单位为秒;默认在用户会话结束(即关闭浏览器)时过期
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'] = 123456
    return 'ok'

获取cookie代码实例:

python 复制代码
@app.route('/getcookie2')
def get_cookie2():
    print('username:', session['password'])
    return 'ok'
相关推荐
jay神1 小时前
深度学习的优化器应该怎么选?
人工智能·python·深度学习·毕业设计·课程设计
程序员黑豆5 小时前
Java包装类:基本类型与对象的桥梁
java·前端·ai编程
bugcome_com7 小时前
JWT 知识小课堂:从入门到精通,一文吃透 JSON Web Token
前端·json
To_OC8 小时前
写了三天 Next.js,我的 React 世界观被拆了又装回去
前端·全栈·next.js
独泪了无痕8 小时前
viewer.js 安装与配置指南:实现图片预览功能
前端·vue.js
XLYcmy9 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
虎头金猫9 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
从零开始学习人工智能9 小时前
WSL2部署CUDA12+cuDNN9踩坑实录:ONNX Runtime GPU推理环境搭建全流程
python
m0_380743879 小时前
从零调用 Claude 教程
开发语言·python·node.js
Fluxart.ai10 小时前
电商商品图审核怎么自动化?规则引擎、人工复核与发布门禁
java·前端·自动化