Как я могу сделать непостоянную сессию во Flask - PullRequest
0 голосов
/ 03 октября 2018

Я изучаю флягу и пытаюсь связать случайно сгенерированные данные с каждым сеансом.Я использую подход из этого ответа , чтобы установить для session.permanent значение False, но при закрытии браузера и последующем открытии его при возврате на страницу все еще отображается тот же код.

MWE:

from flask import Flask, session
import numpy as np

app = Flask(__name__)
app.secret_key = "supersecretkey"

@app.before_request
def make_session_permanent():
    session.permanent = False

@app.route('/')
def index():
    if 'id' not in session:
        random_id = "".join(np.random.choice(list("abcdefg123"), 16))
        session["id"] = random_id
    return session['id']

if __name__ == '__main__':
    app.run(debug=True)

Обновление: на основе этого ответа кто-то порекомендовал использовать socketio для уведомления об отключениях.Это также не имеет значения, то есть закрытие браузера, повторное его открытие и переход к 127.0.0.1:5000 дает тот же номер, что и перед закрытием.Обновленный MWE, использующий это ниже:

from flask import Flask, session
from flask_socketio import SocketIO
import numpy as np

app = Flask(__name__)
app.secret_key = "supersecretkey"

@app.before_request
def make_session_permanent():
    session.permanent = False

@app.route('/')
def index():
    if 'id' not in session:
        random_id = "".join(np.random.choice(list("abcdefg123"), 16))
        session["id"] = random_id
    return session['id']

socketio = SocketIO(app)
@socketio.on('disconnect')
def disconnect_user():
    session.pop('id', None)


if __name__ == '__main__':
    app.run(debug=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...