为什么我的会话变量在关闭浏览器后清除?

2024-04-19 01:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个代码片段,它是一个简单的便笺应用程序,接收用户的输入并在浏览器上显示便笺。注释存储在flask提供的会话变量中我的问题是,即使服务器正在运行并且我输入的注释在变量中,为什么在我关闭浏览器时注释变量会清除?

如何使其在浏览器关闭后仍然保持?请告诉我仅使用会话变量的解决方案。

from flask import Flask, render_template, request, session
from flask_session import Session

app = Flask(__name__)

app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)

print(app.config)
notes = []

@app.route("/", methods=["GET", "POST"])
def index():
    if session.get("notes") is None:
        session["notes"]=[]

    if request.method == "POST":
        note = request.form.get("note")
        session["notes"].append(note)

    return render_template("index.html", notes=session["notes"])

Tags: fromimportconfigappflaskrequestsession浏览器
1条回答
网友
1楼 · 发布于 2024-04-19 01:37:57

当用户开始与服务器通信时,会话ID将生成并存储为客户端cookie。会话本身存储在服务器中(通常存储在内存中,但这是基于实现的)。 会话是基于单个用户与网页的交互。如果您没有为cookie设置(足够长的)过期期限,它将在浏览器退出时擦除cookie。尝试在HTTP响应超时上设置SET-COOKIE字段

相关问题 更多 >