当前位置:实例文章 » 其他实例» [文章]DAY13_会话技术-Cookie&Session&综合案例

DAY13_会话技术-Cookie&Session&综合案例

发布人:shili8 发布时间:2025-03-14 12:24 阅读次数:0

**DAY13: 会话技术 - Cookie & Session & 综合案例**

在前面的章节中,我们已经学习了 HTTP 协议、GET 和 POST 请求、HTTP 头部等基本概念。今天,我们将重点讨论会话技术中的两个重要组成部分:Cookie 和 Session。

**1. Cookie**

Cookie 是一种小型文本文件,存储在客户端浏览器中。当服务器向客户端发送 HTTP 响应时,可以通过 `Set-Cookie` 头部添加 Cookie。Cookie 的主要作用是保存用户的状态信息,使得下一次请求可以直接使用这些信息。

**Cookie 的特点:**

* 存储在客户端浏览器中* 有大小限制(通常为4KB)
* 可以设置过期时间* 可以设置域名和路径**示例代码:**

from flask import Flask, request, sessionapp = Flask(__name__)
app.secret_key = 'secret_key'

@app.route('/set_cookie', methods=['POST'])
def set_cookie():
 # 设置 Cookie 的值 response = make_response('Cookie 设置成功!')
 response.set_cookie('username', 'JohnDoe')
 return response@app.route('/get_cookie', methods=['GET'])
def get_cookie():
 # 获取 Cookie 的值 username = request.cookies.get('username')
 print(username) # JohnDoe return 'Cookie 值获取成功!'

**2. Session**

Session 是一种更为复杂的会话技术,用于保存用户的状态信息。与 Cookie 相比,Session 有以下几个优势:

* 可以存储更多的数据(通常为4MB)
* 不受大小限制* 可以设置过期时间**示例代码:**
from flask import Flask, request, sessionapp = Flask(__name__)
app.secret_key = 'secret_key'

@app.route('/set_session', methods=['POST'])
def set_session():
 # 设置 Session 的值 session['username'] = 'JohnDoe'
 return 'Session 设置成功!'

@app.route('/get_session', methods=['GET'])
def get_session():
 # 获取 Session 的值 username = session.get('username')
 print(username) # JohnDoe return 'Session 值获取成功!'

**综合案例**

现在,我们将结合 Cookie 和 Session 来实现一个综合案例。

假设我们有一个在线购物系统,需要保存用户的登录信息和购物车内容。我们可以使用 Cookie 来存储用户的登录信息,而使用 Session 来存储购物车内容。

**示例代码:**
from flask import Flask, request, sessionapp = Flask(__name__)
app.secret_key = 'secret_key'

# 设置 Cookie 的值@app.route('/login', methods=['POST'])
def login():
 username = request.form.get('username')
 password = request.form.get('password')
 # 验证登录信息 if username == 'JohnDoe' and password == '123456':
 response = make_response('登录成功!')
 response.set_cookie('username', username)
 return response# 获取 Cookie 的值@app.route('/get_cookie', methods=['GET'])
def get_cookie():
 username = request.cookies.get('username')
 print(username) # JohnDoe return 'Cookie 值获取成功!'

# 设置 Session 的值@app.route('/add_to_cart', methods=['POST'])
def add_to_cart():
 product_id = request.form.get('product_id')
 quantity = request.form.get('quantity')
 session['cart'] = {'product_id': product_id, 'quantity': quantity}
 return '添加到购物车成功!'

# 获取 Session 的值@app.route('/get_session', methods=['GET'])
def get_session():
 cart = session.get('cart')
 print(cart) # {'product_id': '123', 'quantity': '2'}
 return 'Session 值获取成功!'

通过以上案例,我们可以看到 Cookie 和 Session 的应用场景和优势。Cookie 适合用于保存用户的登录信息,而 Session 适合用于保存购物车内容等更为复杂的会话技术。

**总结**

本文主要讨论了 Cookie 和 Session 这两个重要的会话技术组成部分。通过案例分析,我们可以看到它们的应用场景和优势。Cookie 适合用于保存用户的登录信息,而 Session 适合用于保存购物车内容等更为复杂的会话技术。

**参考资料**

* [Flask 文档]( />* [HTTP 协议文档]( />* [Cookie 和 Session 的区别](

相关标签:
其他信息

其他资源

Top