第二章 Flask与HTTP (2)

本文介绍了Flask框架中的Cookie和Session管理,详细讨论了如何在不同场景下使用它们,包括启动程序时的设置以及通过Flask命令行工具进行交互。同时,也讲解了Flask上下文的概念,帮助理解在何时何地可以访问到这些上下文信息。
摘要由CSDN通过智能技术生成

来一块Cookie

HTTP是无状态(stateless)协议。也就是说,在一次请求响应结束后,服务器不会留下任何关于对方状态的信息。但是对于某些Web程序来说,客户端的某些信 息又必须被记住,比如用户的登录状态,这样才可以根据用户的状态来返回不同的响应。为了解决这类问题,就有了Cookie技术。Cookie技术通过在请求和响应报文 中添加Cookie数据来保存客户端的状态信息.
 
Cookie指Web服务器为了存储某些数据(比如用户信息)而保存在浏览器上的小型文本数据。浏览器会在一定时间内保存它,并在下一次向同一个服务器发送请 求时附带这些数据。Cookie通常被用来进行用户会话管理(比如登录状态),保存 用户的个性化信息(比如语言偏好,视频上次播放的位置,网站主题选项等)以及 记录和收集用户浏览数据以用来分析用户行为等。
 
设置cookie
from flask import Flask, make_response 
... 
@app.route('/set/<name>') 
def set_cookie(name): 
    response = make_response(redirect(url_for('hello'))) 
    response.set_cookie('name', name) 
    return response
在Flask中,Cookie可以通过请求对象的cookies属性读取。在修改后的hello视图中,如果没有从查询参数中获取到name的值,就从Cookie中寻找:
from flask import Flask, request 
@app.route('/') 
@app.route('/hello') 
def hello(): 
    name = request.args.get('name') 
    if name is None: 
        name = request.cookies.get('name', 'Human') # 从Cookie中获取name值 
    return '<h1>Hello, %s</h1>' % name

session

在浏览器中手动添加和修改Cookie是很容易的事,仅仅通过浏览器插件就可以实现。所以,如果直接把认证信息以明文的方式存储在 Cookie里,那么恶意用户就可以通过伪造cookie的内容来获得对网站的权限,冒用 别人的账户。为了避免这个问题,我们需要对敏感的Cookie内容进行加密。方便的 是,Flask提供了session对象用来将Cookie数据加密储存。
 
在编程中,session指用户会话(user session),又称为对话(dialogue),即服务器和客户端/浏览器之间或桌面程序和用户之间建立的交互 活动。在Flask中,session对象用来加密Cookie。默认情况下,它会把数据存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值