接下来我会演示一下设置Cookie 读取Cookie 删除Cookie,以及添加Cookie的原理
接下来我们分别定义3个视图为 set_cookie、get_cookie、del_cookie
# coding:utf-8 from flask import Flask, make_response, request app = Flask(__name__) @app.route("/set_cookie") def set_cookie(): # 创建一个响应的对象 resp = make_response('设置成功') # 设置cookie resp.set_cookie('username1', 'hannibal') # 设置多个cookie resp.set_cookie('username2', 'circle') # 默认的有效期是关闭浏览器之前 max_age 是手动添加有效期 单位是妙 resp.set_cookie('username3', 'benjamin', max_age=3600) return resp @app.route("/get_cookie") def get_cookie(): c = request.cookies.get('username1') return c @app.route('/del_cookie') def del_cookie():
# 删除Cookie的时候也需要先创建响应对象 resp = make_response('del cookie') resp.delete_cookie('username3') return resp if __name__ == '__main__': app.run(host='0.0.0.0', debug=True)
通过返回结果我们可以看出:设置了3个Cookie
如果不指定过期时间默认是会话结束时候
同样我们这里还有设置了一个过期时间为1小时(3600)
当我们访问get_cookie时
当我们删除Cookie时,通过结果可以看出,并没有在浏览器真正的删除了username3这个Cookie,而是帮我们把过期时间更改为了创建时间。显然这么做也是足够的
通过上面的返回信息,我们可以看出,其实就是通过设置Cookie就是在响应头里给我们添加了一条数据而已
其实我们就可以在响应头里自己添加一个Set-Cookie 这个键 并且按照他的格式给它赋值,原理就是这么个原理
resp.headers["Set-Cookie"] = "username3=benjamin; Expires=Tue, 23-Jul-2019 09:49:51 GMT; Max-Age=3600; Path=/"