Простая серверная переменная сеанса Flask

1

Каков самый простой способ иметь переменную сеанса на стороне сервера в Flask?

Значение переменной:

  • Простая строка
  • Не отображается клиенту (браузеру)
  • Не сохраняется в БД - просто исчезает, когда сеанс пропадает.

Существует встроенный сеанс Flask, но он отправляет данные сеанса клиенту:

session["secret"] = "I can see you"

Данные кодируются base64 и отправляются в криптографически подписанном файле cookie, но все еще тривиально читать на клиенте.

Во многих рамках создание серверной переменной сеанса является однострочным, например:

session.secret = "You can't see this"

Решения Flask, которые я нашел до сих пор, довольно громоздки и ориентированы на обработку больших кусков данных. Есть ли простой легкий вариант?

  • 2
    flask.pocoo.org/snippets/132 за исключением пропуска сохранения на диск.
  • 0
    Пожалуйста, уточните вашу проблему с отправкой данных клиенту. Почти каждый фреймворк использует куки, чтобы иметь идентификатор / токен сеанса. Затем идентификатор сеанса можно использовать для поиска других данных сеанса, которые хранятся в вашей локальной базе данных. Это то, что вы хотите сделать?
Показать ещё 1 комментарий
Теги:
flask
security
session
server-side

1 ответ

2
Лучший ответ

Я думаю, что расширение Flask-Session - это то, что вы ищете.

Flask-Session - это расширение для Flask, которое добавляет поддержку сеанса на стороне сервера в ваше приложение.

На связанном веб-сайте:

from flask import Flask, session
from flask.ext.session import Session

app = Flask(__name__)
# Check Configuration section for more details
SESSION_TYPE = 'redis'
app.config.from_object(__name__)
Session(app)

@app.route('/set/')
def set():
    session['key'] = 'value'
    return 'ok'

@app.route('/get/')
def get():
    return session.get('key', 'not set')
  • 0
    Пример кода здесь не работает. Похоже, что Flask-Session изменился, не говоря уже о том, что прошло 2 года с момента проверки кода для Flask-Session. Как минимум измените импорт на from flask_session import Session . Но одного этого недостаточно. Я все еще пытаюсь понять, как заставить этот пакет работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню