[PYTHON] Django settings.py SECRET_KEY Fehler

Wenn Sie das Django-Modul in settings.py importieren, werden Sie wütend, da beim Ersetzen von Einstellungen keine SECRET_KEY-Einstellung vorhanden ist.

Hintergrund 1

Add_to_builtins ('bootstrap3.templatetags.bootstrap3') in settings.py Es scheint nicht notwendig zu sein, "{% load bootstrap3%}" am Anfang der Vorlage zu schreiben. Deshalb habe ich es sofort geschrieben.

from django.template.base import add_to_builtins

add_to_builtins('bootstrap3.templatetags.bootstrap3')

Hintergrund 2

django kann die verwendeten Einstellungen ändern, indem die Option --settings übergeben wird, wenn der Befehl manage.py ausgeführt wird. Bereiten Sie auf diese Weise die Einstellungen für den Test und die Einstellungen für die Bereitstellung sowie beim Start in der Testumgebung oder Produktionsumgebung vor $ python manage.py runserver --settings=myproject.settings_production Führen Sie wie folgt aus.

Hinweis: Im Fall von Gunicorn sieht es so aus $ gunicorn -w 2 myproject.wsgi:application --settings=myproject.settings_production --bind=unix:///tmp/myproject.sock

Da sich die Einstellungen für die Produktionsumgebung vom DEBUG-Flag und der Datenbank unterscheiden, Importieren Sie die Standardeinstellungen wie unten gezeigt und überschreiben Sie nur die erforderlichen Variablen.

from .settings import *

DEBUG = False
ALLOWED_HOSTS = ['*']

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

Problem

Hintergrund 1 (Import von django.template.base in settings.py) und Hintergrund 2 (Einstellungen ersetzen) Der folgende Fehler wird ausgelöst und gelöscht. import django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

Ursache

Da ich in den Einstellungen django angerufen und dann die Einstellungen darin aufgerufen habe, Es scheint, dass der Import von Standardeinstellungen durch die Verhinderung von Endlosschleifen unterdrückt wurde.

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

Gegenmaßnahme

Führen Sie "add_to_builtins" in settings.py aus. Dies scheint schlecht zu sein. Gehen Sie also zu "myproject / __ init __. Py". Bei der Ausführung mit Gunicorn können Sie jedoch wütend werden, wenn beim Importieren von Django in "myproject / __ init __. Py" keine Umgebungsvariable "DJANGO_SETTINGS_MODULE" vorhanden ist (abhängig vom zu ladenden Modul).

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 scheint die Einstellungen darin zu lesen.

Der Inhalt von "myproject / __ init __. Py" unter Berücksichtigung des Starts von gunicorn ist also so.

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

Django settings.py SECRET_KEY Fehler
Django ~ settings.py edition ~
Django2.2 SQLite3-Versionsfehler
Django Server Error (500) Strategie [2019 Adcare]
Django
[Django] Erstellen Sie Ihre eigene 403, 404, 500-Fehlerseite
Fehlerbehandlung während der Django-Migration 'DIRS': [BASE_DIR / 'Templates']
[Django] Fehler beim Bereitstellen von Heroku (2)
Berechtigungsfehler beim Lesen der Django-Upload-Datei