1. Flask框架中的Cookie
Cookie是一种存储在用户计算机上的小型文本文件,用于存储有关用户的信息。在Flask框架中,可以使用cookies
模块来处理Cookie。
1.1 设置Cookie
要设置Cookie,需要使用response
对象的set_cookie()
方法。该方法接受以下参数:
key:Cookie的名称
value:Cookie的值
max_age:Cookie的生命周期,单位为秒
expires:Cookie的过期日期,格式为时间戳
path:Cookie的路径,默认为根目录
domain:Cookie的域名,默认为当前域名
secure:指定是否只能通过HTTPS协议传输Cookie,默认为False
httponly:指定是否只能通过HTTP协议访问Cookie,默认为False
示例代码:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def set_cookie():
response = make_response('Setting cookie')
response.set_cookie('username', 'John')
return response
在上述代码中,当用户访问根URL时,会收到一个包含名为username
、值为John
的Cookie。
1.2 获取Cookie
要获取Cookie,可以使用request
对象的cookies
属性。该属性返回一个字典,包含了所有的Cookie。
示例代码:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def get_cookie():
username = request.cookies.get('username')
return f"Username: {username}"
上述代码中,当用户访问根URL时,会返回用户名。
1.3 删除Cookie
要删除Cookie,可以使用response
对象的delete_cookie()
方法。
示例代码:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def delete_cookie():
response = make_response('Deleting cookie')
response.delete_cookie('username')
return response
在上述代码中,当用户访问根URL时,会删除名为username
的Cookie。
2. Flask框架中的Session
Session是一种服务器端存储用户会话数据的机制。在Flask框架中,可以使用session
对象来处理Session。
2.1 开启Session支持
要开启Session支持,需要设置应用程序的secret_key
,该密钥用于加密Session数据。
示例代码:
from flask import Flask, session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
2.2 设置Session数据
要设置Session数据,可以直接在session
对象上进行操作,类似于操作字典。
示例代码:
from flask import Flask, session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
@app.route('/')
def set_session():
session['username'] = 'John'
return 'Setting session'
在上述代码中,当用户访问根URL时,会设置一个名为username
、值为John
的Session。
2.3 获取Session数据
要获取Session数据,可以直接在session
对象上进行操作,类似于操作字典。
示例代码:
from flask import Flask, session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
@app.route('/')
def get_session():
username = session.get('username')
return f"Username: {username}"
在上述代码中,当用户访问根URL时,会返回用户名。
2.4 删除Session数据
要删除Session数据,可以使用session
对象的pop()
方法。
示例代码:
from flask import Flask, session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
@app.route('/')
def delete_session():
session.pop('username', None)
return 'Deleting session'
在上述代码中,当用户访问根URL时,会删除名为username
的Session。
总结
在Flask框架中,可以使用Cookie和Session来处理用户会话数据。Cookie适用于存储少量的不敏感信息,而Session适用于存储大量的敏感信息。使用Cookie和Session可以实现用户身份认证、数据保持等功能。