Python Flask - 如何通过 cookie/session 记住匿名用户?

Res*_*hef 5 python session-cookies flask

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

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

请帮忙。

DaL*_*ynX 3

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

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

实施示例:

from flask import session, app

@app.before_request
def make_session_permanent():
    session.permanent = True
Run Code Online (Sandbox Code Playgroud)

在您的调查表单视图中:

if not "already_participated" in session:
    ... Display form
Run Code Online (Sandbox Code Playgroud)

然后在您的提交视图中:

session["already_participated"] = True
Run Code Online (Sandbox Code Playgroud)