Атрибут secret_key
Атрибут secret_key применяется к приложению Flask и хранит секретную строку, которой подписываются данные сессии, а также токены CSRF и сообщения flash. Без установленного secret_key Flask не сможет безопасно сохранять данные между запросами, и при попытке обратиться к session возникнет ошибка RuntimeError. Значением атрибута может быть строка или байты, при этом рекомендуется использовать длинную случайную последовательность.
Синтаксис
app.secret_key = value
Пример
Давайте установим секретный ключ и сохраним значение в сессию:
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
session['user'] = 'hello'
return session['user']
Результат выполнения кода для адреса /:
hello
Пример
Давайте прочитаем секретный ключ через атрибут secret_key:
from flask import Flask
app = Flask(__name__)
app.secret_key = 'abcde'
@app.route('/')
def index():
res = app.secret_key
return res
Результат выполнения кода для адреса /:
abcde
Пример
Давайте сгенерируем случайный секретный ключ с помощью модуля secrets:
import secrets
from flask import Flask
app = Flask(__name__)
app.secret_key = secrets.token_hex(16)
@app.route('/')
def index():
res = app.secret_key
return res
Результат выполнения кода для адреса /:
9f8c2b1e4a7d3c6f0e5b8a2d1c4f7e3a
Смотрите также
-
класс
Flask,
который представляет приложение Flask -
атрибут
config,
который хранит настройки приложения -
атрибут
permanent_session_lifetime,
который задаёт время жизни постоянной сессии -
метод
run,
который запускает сервер приложения