1. 设置 cookie
- 方式一
- 创建对象 make_response 的对象,然后调用对象的 set_cookie 方法设置 cookie
- 语法:
- response.set_cookie('cookie名', 'cookie值') -> 创建临时cookie
- response.set_cookie('cookie名', 'cookie值', max_age=xxx) -> 创建有效期cookie
# app.py
from flask import Flask, render_template, make_response
app = Flask(__name__)
@app.route('/set_cookie')
def set_cookie():
""" 设置cookie """
temp = render_template('index.html')
response = make_response(temp) # 创建响应对象
response.set_cookie('t_c_key', 't_c_value') # 设置 cookie,默认临时cookie浏览器关闭即失效
response.set_cookie('v_p_key', 'v_p_value', max_age=20) # 设置 cookie,通过 max_age 控制 cookie 有效期, 单位: 秒
return response
if __name__ == '__main__':
app.run()

- 方式二 -> 很少使用
- 直接设置cookie响应头
- 除了键值对,其他部分可去浏览器检查摘抄
# app.py
from flask import Flask, render_template, make_response
app = Flask(__name__)
@app.route('/set_cookie')
def set_cookie():
""" 设置cookie """
temp = render_template('index.html')
response = make_response(temp) # 创建响应对象
response.headers["Set-Cookie"] = 'v_p_key=v_p_value; Expires=Wed, 28-Aug-2019 08:48:36 GMT; Max-Age=20; Path=/' # 直接设置cookie响应头
return response
if __name__ == '__main__':
app.run()

2. 删除 cookie
- 创建对象 make_response 的对象,然后调用对象的 delete_cookie 方法删除 cookie
- 语法: response.delete_cookie('cookie名')
# app.py
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/delete_cookie')
def delete_cookie():
""" 删除cookie """
response = make_response('删除成功') # 创建响应对象
response.delete_cookie('t_c_key') # 删除 cookie
return response
if __name__ == '__main__':
app.run()
3. 获取 cookie
# app.py
from flask import Flask, request
app = Flask(__name__)
@app.route('/get_cookie')
def get_cookie():
""" 获取cookie """
all_cookie = request.cookies # 获取所有的cookie
print(all_cookie) # {'t_c_key': 't_c_value', 'csrftoken': 'sqXJLV5sHo5s5yK2QttwrU3vcpL8SZnQ3Uxfr4xbGzMlMvEafVVxTRI2CbsyQjvv'}
cookie = request.cookies.get('v_p_key') # 获取指定的cookie
print(cookie) # v_p_value 或 None
return cookie if cookie else 'cookie已过期'
if __name__ == '__main__':
app.run()