Вопрос:
Итак, я пытаюсь развернуть приложение 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.