Я пытаюсь настроить Flask-Debugtoolbar, но получаю сообщение "DebugToolBar требует SECRET_KEY". Где я могу получить секретный ключ?
Где я могу получить SECRET_KEY для Flask?
Ответ 1
Секретный ключ необходим для обеспечения безопасности сеансов на стороне клиента. Вы можете создать случайный ключ
>>> import os
>>> os.urandom(24)
'\xfd{H\xe5<\x95\xf9\xe3\x96.5\xd1\x01O<!\xd5\xa2\xa0\x9fR"\xa1\xa8'
Просто возьмите этот ключ и скопируйте его в свой файл конфигурации
SECRET_KEY = '\xfd{H\xe5<\x95\xf9\xe3\x96.5\xd1\x01O<!\xd5\xa2\xa0\x9fR"\xa1\xa8'
См. Sessions документация
Ответ 2
Для того, чтобы использовать сеанс в колбе, вам необходимо установить секретный ключ в настройках вашего приложения. Секретный ключ - это случайный ключ, используемый для шифрования ваших файлов cookie и сохранения их отправки в браузер.
Эта ошибка из-за этой строки в коде Flask-Debugtoolbar
Чтобы это исправить, вам просто нужно установить SECRET_KEY
в вашем конфигурационном файле.
app.config['SECRET_KEY'] = "Your_secret_string"
или, если у вас есть файл конфигурации, просто добавьте ниже конфигурацию к нему:
SECRET_KEY = "Your_secret_string"
Ответ 3
Получить случайную строку для секретного ключа:
Способ 1: используйте os
в Python 2/3:
>>> import os
>>> os.urandom(12)
'\xf0?a\x9a\\\xff\xd4;\x0c\xcbHi'
Способ 2: используйте uuid
в Python 2/3:
>>> import uuid
>>> uuid.uuid4().hex
'3d6f45a5fc12445dbac2f59c3b6c7cb1'
Способ 3: использовать secrets
в Python> = 3.6:
>>> import secrets
>>> token_urlsafe(16)
'Drmhze6EPcv0fN_81Bj-nA'
Способ 4: используйте os
в Python 3:
>>> import os
>>> os.urandom(12).hex()
'f3cfe9ed8fae309f02079dbf'
Установить секретный ключ в колбу
Способ 1: использовать app.secret_key
:
app.secret_key = 'the random string'
Способ 2: используйте app.config
:
app.config['SECRET_KEY'] = 'the random string'
Способ 3: поместите его в свой конфигурационный файл:
SECRET_KEY = 'the random string'