Почему моя переменная сеанса очищается после закрытия браузера? - PullRequest
0 голосов
/ 03 апреля 2020

Вот фрагмент кода, который представляет собой простое приложение для заметок, которое принимает ввод от пользователя и отображает заметки в браузере. Примечания хранятся в переменной сеанса, предоставленной 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"])

1 Ответ

0 голосов
/ 03 апреля 2020

Идентификаторы сеанса генерируются и сохраняются как клиентская программа ie, когда пользователь начинает общаться с сервером. Сеансы хранятся на сервере (обычно в памяти, но это зависит от реализации). Предполагается, что сеансы основаны на взаимодействии одного пользователя с веб-страницей. Если вы не установите (достаточно) длительный срок действия для повара ie, он будет стирать повара ie при выходе из браузера. Попробуйте установить поле SET-COOKIE по таймауту ответа HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...