【问题标题】:set persistent cookie with python flask使用 python 烧瓶设置持久 cookie
【发布时间】:2016-07-11 09:56:57
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 看看flask-login。它提供remember be 功能。您还可以在 Miguel Gringerg 的 flask tutorial 中找到使用它的示例
  • 感谢您为我指明了正确的方向。然而,Flask-login 确实感觉有点像只为 cookie 添加属性有点矫枉过正。没有其他方法可以更改持久性 cookie?
  • this thread 可以提供帮助吗?另外,请确保您正确使用session.permanent(请参阅this thread
  • 再次感谢您的指点。非常感激。看了一下,试过了,最后还是用javascript做了他的cookie....

标签: cookies flask persistent


【解决方案1】:

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

Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>

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

对于 Flask,您可以将 response.set_cookie() 函数的参数 expires= 用于 30 天 cookie:

import datetime
response.set_cookie(name, value,
                    expires=datetime.datetime.now() + datetime.timedelta(days=30)) 

【讨论】:

    猜你喜欢
    • 2019-07-29
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多