[PYTHON] Erreur Django settings.py SECRET_KEY

Si vous importez le module django dans settings.py, vous vous fâcherez car il n'y a pas de paramètre SECRET_KEY lors du remplacement des paramètres.

Contexte 1

Dans settings.py ʻadd_to_builtins ('bootstrap3.templatetags.bootstrap3') ` Il semble qu'il ne soit pas nécessaire d'écrire «{% load bootstrap3%}» au début du modèle. C'est pourquoi je l'ai écrit immédiatement.

from django.template.base import add_to_builtins

add_to_builtins('bootstrap3.templatetags.bootstrap3')

Contexte 2

django peut modifier les paramètres utilisés en passant l'option --settings lors de l'exécution de la commande manage.py. En l'utilisant, préparez les paramètres pour le test et les paramètres pour le déploiement, et lors du démarrage dans l'environnement de test ou l'environnement de production $ python manage.py runserver --settings=myproject.settings_production Exécutez comme suit.

Référence: dans le cas du gunicorn, cela ressemble à ceci $ gunicorn -w 2 myproject.wsgi:application --settings=myproject.settings_production --bind=unix:///tmp/myproject.sock

Étant donné que les paramètres de l'environnement de production sont différents de l'indicateur DEBUG et de la base de données, Importez les paramètres par défaut comme indiqué ci-dessous et écrasez uniquement les variables nécessaires.

from .settings import *

DEBUG = False
ALLOWED_HOSTS = ['*']

DATABASES = {
    'default': {
        ...
    }
}

problème

Arrière-plan 1 (importation de django.template.base dans settings.py) et arrière-plan 2 (remplacer les paramètres) L'erreur suivante est lancée et supprimée. import django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

Cause

Depuis que j'ai appelé django dans les paramètres, puis que j'ai appelé les paramètres, Il semble que l'importation des paramètres par défaut a été supprimée par la prévention des boucles infinies.

スクリーンショット 2015-07-15 12.31.37.png

contre-mesure

Exécuter ʻadd_to_builtinsdans settings.py semble être mauvais, alors passez àmyproject / __ init __. Py. Cependant, lors de l'exécution avec gunicorn, vous pouvez vous fâcher s'il n'y a pas de variable d'environnement DJANGO_SETTINGS_MODULE lors de l'importation de django dans monprojet / __ init __. Py` (selon le module à charger).

ImproperlyConfigured: Requested setting BOOTSTRAP3, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

\ # bootstrap3 semble lire les paramètres à l'intérieur.

Ainsi, le contenu de myproject / __ init __. Py considérant le début de gunicorn est comme ça.

import os

from django.template.base import add_to_builtins


os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mailer.settings")

add_to_builtins('bootstrap3.templatetags.bootstrap3')

Recommended Posts

Erreur Django settings.py SECRET_KEY
Django ~ édition settings.py ~
Erreur de version Django2.2 SQLite3
Stratégie d'erreur du serveur Django (500) [Adcare 2019]
Django
[Django] Créez votre propre page d'erreur 403, 404, 500
Gestion des erreurs lors de la migration de Django'DIRS ': [BASE_DIR /' templates ']
[Django] Erreur rencontrée lors du déploiement de heroku (2)
Erreur d'autorisation lors de la lecture du fichier de téléchargement Django