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"])
==================================================== ===============
每当我从表单发布新信息时,它都会覆盖旧信息。似乎会话已重置。
知道为什么会这样吗?
谢谢,瓦尔丹
解决方案
请考虑以下几点:
- 这是最重要的一点,要使烧瓶会话正常工作,您需要配置 a
SECRET_KEY
,如下所示:
app.config["SECRET_KEY"] = 'YourSecretKey@123'
- 我不知道,我只是发现您不需要以下行并且它是相应的导入(当我注释掉这部分时它开始为我工作,可能是 Flask-Session 和 Flask 的内置会话搞砸了彼此):
Session(app)
from flask_session import Session
- 不要直接更新会话,如果它是一个数组,请执行以下操作:
note = request.form.get("note")
temp = session['notes']
temp.append(note)
session['notes'] = temp
我希望,它会为你工作。
推荐阅读
- typescript - 在 Angular5 中获取本地存储对象函数时出错
- sapui5 - SAPUI5 FileUploader 最大文件大小警报
- python - 分组数据帧中的有效循环以访问当前和先前索引的值(并计算差异)
- ruby-on-rails - Rails 解析 csv 分隔符 ¦
- match - 如何正确验证json中的新字段
- authentication - 如何在 Apache Airflow 中激活身份验证
- java - 按顺序查找并获取 2 个单击按钮的 id
- openmp - Blitz++、犰狳和 OpenMP 非常慢
- angular - 代理配置在角度 6 中不起作用
- visual-studio-code - 如何轻松地将 Visual Studio Code 工作区移动到新位置?