使用 python 烧瓶设置持久 cookie
Posted
技术标签:
【中文标题】使用 python 烧瓶设置持久 cookie【英文标题】:set persistent cookie with python flask 【发布时间】: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....
【参考方案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))
【讨论】:
以上是关于使用 python 烧瓶设置持久 cookie的主要内容,如果未能解决你的问题,请参考以下文章
Firefox不允许我使用FormsAuthentication设置持久性cookie
如何通过express-session在node.js上设置持久性cookie?