烧瓶会话丢失数据

时间:2020-05-23 13:36:45

标签: flask

我正在测试一个简单的应用程序以在会话中存储数据。我创建了检查以避免重置,但是仍然丢失了数据。这是我的app.py代码:

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

app = Flask(__name__)

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

@app.route("/",methods=["POST","GET"])
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("notes.html",notes=session["notes"])

================================================ =================

每当我从表单发布新信息时,它都会覆盖旧信息。似乎会话已重置。

知道为什么会发生吗?

谢谢, 瓦尔丹

1 个答案:

答案 0 :(得分:1)

请考虑以下内容:

  1. 这是最重要点,要使烧瓶会话正常工作,您需要配置SECRET_KEY,如下所示:
app.config["SECRET_KEY"] = 'YourSecretKey@123'
  1. 我不知道,我只是想知道您不需要以下行,并且它是相应的导入(当我注释掉此部分时,它开始为我工作,可能是Flask-Session和Flask的内置会话是互相弄乱):
Session(app)
from flask_session import Session
  1. 不要直接更新会话,如果它是数组,请执行以下操作:
note = request.form.get("note")
temp = session['notes']
temp.append(note)
session['notes'] = temp

我希望它将为您服务。