【问题标题】:Python Flask - how to remember anonymous users via cookie/session?Python Flask - 如何通过 cookie/会话记住匿名用户?
【发布时间】:2019-05-22 19:06:36
【问题描述】:

我正在构建一个作为研究实验一部分的 Flask 网站。 我需要能够记住匿名用户,以便我网站的每个访问者都是匿名且唯一的,但也被记住,因此他们无法再次进入该网站(他们将被重定向到“感谢您的参与”页面) .

我该怎么做?我查看了 flask.session (如何生成唯一的匿名 id 并将其保存到用户 cookie?)和 Flask-login (必须与用户登录才能获得一个 id),但没有找到这个问题的具体解决方案。

请帮忙。

【问题讨论】:

    标签: python flask session-cookies


    【解决方案1】:

    您的问题没有完美的解决方案,因为如果用户是匿名的,您将无法识别他们。

    最实用的可能是使用会话并将他们完成的调查保存在会话变量中。但如果他们清除 cookie,他们将能够再次进入该网站。

    示例实现:

    from flask import session, app
    
    @app.before_request
    def make_session_permanent():
        session.permanent = True
    

    在您的调查表视图中:

    if not "already_participated" in session:
        ... Display form
    

    然后在您的提交视图中:

    session["already_participated"] = True
    

    【讨论】:

    • 嗨,你能写一个小例子来说明如何使用flask中的会话来解决这个问题吗?
    • 这里有一些代码。不要忘记使会话永久化,这样当用户关闭浏览器时它们就不会被删除。永久会话的默认寿命为 31 天。但如有必要,您可以更改它(参见stackoverflow.com/questions/11783025/…
    猜你喜欢
    • 2014-05-16
    • 2015-12-14
    • 2021-11-08
    • 2015-01-22
    • 1970-01-01
    • 2020-10-18
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多