推荐答案
在 Flask 中,可以通过 response.set_cookie() 方法来设置 Cookie。以下是一个简单的示例:
// www.javascriptcn.com code example
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/set_cookie')
def set_cookie():
resp = make_response("Cookie has been set!")
resp.set_cookie('username', 'john_doe', max_age=60*60*24) # 设置 Cookie,有效期为 1 天
return resp
if __name__ == '__main__':
app.run()在这个示例中,set_cookie() 方法用于设置一个名为 username 的 Cookie,其值为 john_doe,并且设置了有效期为 1 天(max_age=60*60*24)。
本题详细解读
1. set_cookie() 方法
set_cookie() 方法是 Flask 中用于设置 Cookie 的主要方法。它通常与 make_response() 结合使用,因为 set_cookie() 需要在响应对象上调用。
resp = make_response("Cookie has been set!")
resp.set_cookie('username', 'john_doe', max_age=60*60*24)2. 参数说明
key: Cookie 的名称,例如'username'。value: Cookie 的值,例如'john_doe'。max_age: Cookie 的有效期,以秒为单位。例如60*60*24表示 1 天。expires: Cookie 的过期时间,通常是一个datetime对象。如果同时设置了max_age和expires,max_age优先。path: Cookie 的路径范围,默认为/,表示整个网站。domain: Cookie 的域名范围,默认为当前域名。secure: 如果设置为True,则 Cookie 只能通过 HTTPS 传输。httponly: 如果设置为True,则 Cookie 无法通过 JavaScript 访问,增加了安全性。
3. 读取 Cookie
在 Flask 中,可以通过 request.cookies 来读取客户端发送的 Cookie:
from flask import request
@app.route('/get_cookie')
def get_cookie():
username = request.cookies.get('username')
return f"Username: {username}"4. 删除 Cookie
要删除一个 Cookie,可以通过设置 max_age 为 0 或 expires 为一个过去的时间来实现:
@app.route('/delete_cookie')
def delete_cookie():
resp = make_response("Cookie has been deleted!")
resp.set_cookie('username', '', max_age=0)
return resp通过以上方法,你可以在 Flask 应用中轻松地设置、读取和删除 Cookie。