使用 python 烧瓶设置持久性 cookie

joo*_*076 0 cookies persistent flask

我正在尝试使用 cookie 来记住访问者是否已经在我的网站上看过特定的教程页面。该站点是使用 Flask 构建的。

教程页面是从烧瓶路由加载的,所以我认为尝试使用烧瓶框架中的 make_response 和 response.set_cookie 函数更改烧瓶路由定义中的 cookie 是有意义的。

但是,此(会话)cookie 仅在会话期间有效。我找不到有关使用烧瓶设置永久/持久 cookie 的任何信息。我怎么能用烧瓶做到这一点?

谢谢!

Vin*_*t J 6

要设置持久性 cookie,您必须在 http 标头中添加“expires”字段:

Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>
Run Code Online (Sandbox Code Playgroud)

如果您不提供Expires=,则浏览器会将 cookie 视为“会话”cookie,并在浏览器关闭时删除 cookie。

对于 Flask,您可以expires=像这样使用response.set_cookie() 函数的参数来获取 30 天的 cookie:

import datetime
response.set_cookie(name, value,
                    expires=datetime.datetime.now() + datetime.timedelta(days=30)) 
Run Code Online (Sandbox Code Playgroud)