推荐答案
在 Flask 中,可以通过 response.set_cookie()
方法来设置 Cookie。以下是一个简单的示例:
-- -------------------- ---- ------- ---- ----- ------ ------ ------------- --- - --------------- ------------------------- --- ------------- ---- - --------------------- --- ---- ------ --------------------------- ----------- ----------------- - -- ----------- - - ------ ---- -- -------- -- ----------- ---------
在这个示例中,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。