在web项目中,设置cookie和session是基本必不可少的一个功能,而Flask设置cookie是使用make_response返回响应信息的时候设置的。 下面来看看Flask框架设置cookie的基本用法。
基本用法
# 导入make_response
from flask import make_response
# 创建响应消息
resp = make_response("set cookie")
# 设置cookie, 默认有效期是临时cookie,浏览器关闭就失效
resp.set_cookie("key", "value")
# max_age设置有效期,单位:秒
resp.set_cookie("key", "value", max_age=3600)
# 使用headers来直接设置Cookie
resp.headers["Set-Cookie"] = "key=value; Expires=Thu, 07-Nov-2019 15:00:10 GMT; Max-Age=3600; Path=/"
# 读取cookie
value = request.cookies.get("key")
# 删除cookie
resp.delete_cookie("key")
下面来写个示例如下:
Cookie使用示例代码
from flask import Flask, make_response, request
# 实例化app
app = Flask(import_name=__name__)
# 设置cookie
@app.route('/set_cookie', methods=["GET","POST"])
def set_cookie():
resp = make_response("set cookie success")
# 设置cookie, 默认有效期是临时cookie,浏览器关闭就失效
resp.set_cookie("key1", "value1")
resp.set_cookie("key2", "value2")
# max_age设置有效期,单位:秒
resp.set_cookie("key3", "value3", max_age=3600)
resp.headers["Set-Cookie"] = "key4=value4; Expires=Thu, 07-Nov-2019 15:00:10 GMT; Max-Age=3600; Path=/"
return resp
# 读取cookie
@app.route('/get_cookie', methods=["GET","POST"])
def get_cookie():
res = request.cookies.get('key3')
return "get cookie key3's value = %s" % res
# 删除cookie
@app.route('/del_cookie', methods=["GET","POST"])
def del_cookie():
resp = make_response("del cookie key3")
resp.delete_cookie('key1')
resp.delete_cookie('key2')
resp.delete_cookie('key3')
resp.delete_cookie('key4')
return resp
if __name__ == '__main__':
app.run(debug=True)
-
访问http://127.0.0.1:5000/set_cookie 设置cookie

可以从返回的响应消息看到,后端返回设置Cookie的消息则是:
Set-Cookie: key1=value1; Path=/
Set-Cookie: key2=value2; Path=/
Set-Cookie: key3=value3; Expires=Thu, 07-Nov-2019 15:00:10 GMT; Max-Age=3600; Path=/
所以在响应消息的headers直接设置也可以设置Cookie,效果是一样的。
原文始发于微信公众号(海洋的渔夫):13. Flask cookie的使用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/30886.html