Как правильно изменить назначенный секретный ключ в веб-приложении Django

Вопрос: Итак, я пытаюсь развернуть приложение Java Django для производства, но перед этим я хочу изменить секретный ключ. Я попытался сгенерировать новый ключ с помощью функции рандомизации и вставить этот новый ключ вместо старого. Когда я это делаю, возникает ошибка, которая говорит следующее: объект AttributeError 'module' не имеет атрибута "JSONEncoder"... Исключение местоположения... /django/contrib/messages/storage/cookie.py in, строка

Вопрос:

Итак, я пытаюсь развернуть приложение Java Django для производства, но перед этим я хочу изменить секретный ключ.

Я попытался сгенерировать новый ключ с помощью функции рандомизации и вставить этот новый ключ вместо старого. Когда я это делаю, возникает ошибка, которая говорит следующее: объект AttributeError ‘module’ не имеет атрибута “JSONEncoder”… Исключение местоположения… /django/contrib/messages/storage/cookie.py in, строка 9

Я удалил кеш браузера и перезапустил сервер, но ошибка сохраняется. Я также попытался изменить ключ назад, после удаления кеша браузера и перезапуска, ошибка все еще сохраняется.

Есть идеи, как решить эту проблему?

Изменение: версия Python – 2.6.6, а версия Django – 1.3.1.

Ответ №1

Поэтому, чтобы ответить на мой собственный вопрос, изменение назначенного ключа выполняется так же, как вы изменили бы любую другую переменную. Просто создайте 50-значную (идеально случайную) строку и установите SECRET_KEY равным ей.

SECRET_KEY = “# $% & N (ASFGAD ^ * (% 326n26835625BEWSRTSER & ^ @T #% $ Bwertb”

Затем перезапустите веб-приложение.

Моя проблема была совершенно не связана. Это произошло из-за того, что я задал путь, которым использует python, чтобы найти пакеты в странное местоположение. Извините, что ребята.

Ответ №2

Мне нравится использовать этот шаблон (там, где вы должны указывать имя приложения вместо APP_NAME):

# SECURITY WARNING: keep the secret key used in production secret! secret_key_env_variable_name = ‘APP_NAME_SECRET_KEY’ SECRET_KEY = os.environ.get(secret_key_env_variable_name) if len(SECRET_KEY) < 25: print( ‘The value of $%s does not contain enough characters (%s characters)’ % (secret_key_env_variable_name, len(SECRET_KEY))) raise RuntimeError(‘SECRET_KEY is not long enough (in environment variable «%s»‘ % secret_key_env_variable_name)

Затем в учетной записи, которая запускает Django, я экспортирую эту переменную в.bashrc (используйте соответствующий файл конфигурации среды):

export APP_NAME_SECRET_KEY=’oysmy1iv=n7ygq%[email protected]([email protected]&5d-i&5%^c8$riw%3$r3yi(=’

Примечание: этот ключ был случайно сгенерирован с первым URL-адресом генератора после поиска в Интернете: сгенерируйте django secret_key.

Оцените статью
Добавить комментарий