Django: Onjuist geconfigureerd: de instelling SECRET_KEY mag niet leeg zijn

| | | | | | | | | |

Ik probeer meerdere instellingsbestanden (ontwikkeling, productie, ..) in te stellen die enkele basisinstellingen bevatten. Kan echter niet lukken. Wanneer ik ./manage.py runserver probeer uit te voeren, krijg ik de volgende foutmelding:

(cb)[email protected] /srv/www/cb $ ./ manage.py runserver Onjuist geconfigureerd: de instelling SECRET_KEY mag niet leeg zijn. 

Hier is mijn instellingenmodule:

(cb)[email protected] /srv/www/cb/cb/settings $ ll totaal 24 -rw- rw-r--. 1 klimaat klimaat 8230 2 okt 02:56 base.py -rw-rw-r--. 1 klimaat klimaat 489 2 oktober 03:09 development.py -rw-rw-r--. 1 klimaat klimaat 24 okt 2 02:34 __init__.py -rw-rw-r--. 1 klimaat klimaat 471 2 oktober 02:51 production.py 

Basisinstellingen (bevatten SECRET_KEY):

(cb)[email protected] /srv/www /cb/cb/settings $ cat base.py: # Django-basisinstellingen voor cb-project. importeer django.conf.global_settings als standaard DEBUG = False TEMPLATE_DEBUG = False INTERNAL_IPS = ("127.0.0.1") ADMINS = ( ("clime", "[email protected]"), ) MANAGERS = DATABASES BEHEERDERS = { "standaard ": { #"ENGINE": "django.db.backends.postgresql_psycopg2", # Voeg "postgresql_psycopg2", "mysql", "sqlite3" of "oracle" toe. "ENGINE": "django.db.backends.postgresql_psycopg2", "NAME": "cwu", # Of pad naar databasebestand bij gebruik van sqlite3. "USER": "clime", # Niet gebruikt met sqlite3. "WACHTWOORD": "", # Niet gebruikt met sqlite3. "HOST": "", # Stel in op een lege tekenreeks voor localhost. Niet gebruikt met sqlite3. "POORT": "", # Standaard ingesteld op lege tekenreeks. Niet gebruikt met sqlite3. } } # Lokale tijdzone voor deze installatie. Keuzes zijn hier te vinden: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # hoewel mogelijk niet alle keuzes beschikbaar zijn op alle besturingssystemen. # In een Windows-omgeving moet dit worden ingesteld op de tijdzone van uw systeem. TIME_ZONE = "Europa/Praag" # Taalcode voor deze installatie. Alle keuzes zijn hier te vinden: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = "en-us" SITE_ID = 1 # Als u dit instelt op False, zal Django enkele optimalisaties maken, zodat niet # om de internationaliseringsmachinerie te laden. USE_I18N = False # Als u dit instelt op False, zal Django geen datums, getallen en # kalenders opmaken volgens de huidige locale. USE_L10N = False # TODO: maak deze waar en gebruik de datum en tijd invoer DATE_INPUT_FORMATS = defaults.DATE_INPUT_FORMATS + ("%d %b %y", "%d %b, %y") # + ("25 okt 13", " 25 Oct, 13") # Als je dit instelt op False, zal Django geen tijdzonebewuste datetimes gebruiken. USE_TZ = True # Absoluut bestandssysteempad naar de map die door gebruikers geüploade bestanden zal bevatten. # Voorbeeld: "/home/media/media.lawrence.com/media/" MEDIA_ROOT = "/srv/www/cb/media" # URL die de media verwerkt die vanuit MEDIA_ROOT worden aangeboden. Zorg ervoor dat u een # trailing slash gebruikt. # Voorbeelden: "http://media.lawrence.com/media/", "http://example.com/media/" MEDIA_URL = "/media/" # Absoluut pad naar de directory waarnaar statische bestanden moeten worden verzameld. # Zet zelf niets in deze map; sla je statische bestanden op # in apps" "static/" submappen en in STATICFILES_DIRS. # Voorbeeld: "/home/media/media.lawrence.com/static/" STATIC_ROOT = "/srv/www/cb/static" # URL-prefix voor statische bestanden. # Voorbeeld: "http://media.lawrence.com/static/" STATIC_URL = "/static/" # Extra locaties van statische bestanden STATICFILES_DIRS = ( # Zet hier strings, zoals "/home/html/static" of "C :/www/django/static". # Gebruik altijd slashes, zelfs in Windows. # Vergeet niet absolute paden te gebruiken, geen relatieve paden. ) # Lijst met vindklassen die weten hoe statische bestanden op # verschillende locaties kunnen worden gevonden STATICFILES_FINDERS = ( "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder", # "django.contrib.staticfiles.finders.DefaultStorageFinder", ) # Maak dit uniek, en don" deel het met niemand. SECRET_KEY = "8lu*6g0lg)9z!ba+a$ehk)xt)x%rxgb$i1&amp;022shmi1jcgihb*" # Lijst met callables die weten hoe sjablonen uit verschillende bronnen moeten worden geïmporteerd. TEMPLATE_LOADERS = ( "django.template.loaders.filesystem.Loader", "django.template.loaders.app_directories.Loader", # "django.template.loaders.eggs.Loader", ) TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth .context_processors.auth", "django.core.context_processors.request", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core .context_processors.static", "django.core.context_processors.tz", "django.contrib.messages.context_processors.messages", "web.context.inbox", "web.context.base", "web.context.main_search ", "web.context.enums", ) MIDDLEWARE_CLASSES = ( "django.middleware.common.CommonMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.csrf.CsrfViewMiddlewaretrib", "django.con .auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "watson.middleware.SearchContextMiddleware", "debug_toolbar.middleware.DebugToolbarMiddleware ", "middleware.UserMemberMiddleware", "middleware.ProfilerMiddleware", "middleware.VaryOnAcceptMiddleware", # Uncommenteer de volgende regel voor eenvoudige clickjacking-beveiliging: # "django.middleware.clickjacking.XFrameOptionsMiddleware", ) ROOT_URLCONF =" "cb.urls Python gestippeld pad naar de WSGI-toepassing die wordt gebruikt door de runserver van Django. WSGI_APPLICATION = "cb.wsgi.application" TEMPLATE_DIRS = ( # Zet hier strings, zoals "/home/html/django_templates" of "C:/www/django/templates". # Gebruik altijd slashes, zelfs op Windows. # Don "vergeet niet absolute paden te gebruiken, geen relatieve paden. "/srv/www/cb/web/templates", "/srv/www/cb/templates", ) INSTALLED_APPS = ( "django.contrib.auth", "django .contrib.contenttypes", "django.contrib.sessions", "django.contrib.sites", "django.contrib.messages", "django.contrib.staticfiles", "south", "grappelli", # moet voor admin "django.contrib.admin", "django.contrib.admindocs", "endless_pagination", "debug_toolbar", "djangoratings", "watson", "web", ) AUTH_USER_MODEL = "web.User" # Een voorbeeld van een logconfiguratie De enige tastbare logging # die door deze configuratie wordt uitgevoerd, is om een e-mail te sturen naar # de sitebeheerders bij elke HTTP 500-fout wanneer DEBUG=False. # Zie http://docs.djangoproject.com/en/dev/topics/logging voor # meer details over het aanpassen van uw logboekconfiguratie. LOGGING = { "version": 1, "disable_existing_loggers": False, "filters": { "require_debug_false": { "()": "django.utils.log.RequireDebugFalse" } }, "formatters": { "standard": { " format" : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", "datefmt" : "%d/%b/%Y % H:%M:%S" }, }, "handlers": { "mail_admins": { "level": "ERROR", "filters": ["require_debug_false"], "class": "django.utils.log .AdminEmailHandler" }, "null": { "level":"DEBUG", "class":"django.utils.log.NullHandler", }, "logfile": { "level":"DEBUG", "class" :"logging.handlers.RotatingFileHandler", "bestandsnaam": "/srv/www/cb/logs/application.log", "maxBytes": 50000, "backupCount": 2, "formatter": "standaard", }, "console":{ "level":"INFO", "class":"logging.StreamHandler", "formatter": "standaard" }, }, "loggers": { "django.request": { "handlers": ["mail_admins"], "level": "ERROR", "propagate": True, }, "django": { "handlers":["console"], "propagate": True, "level":"WARN" , }, "django.db.backends": { "handlers": ["console"], "level": "DEBUG", "propagate": False, }, "web": { "handlers": ["console", "logfile"], "level": "DEBUG", }, }, } LOGIN_URL = "login" LOGOUT_URL = "uitloggen" #ENDLESS_PAGINATION_LOADING = """ # <img src="/static/web/img/preloader.gif" alt="loading" style="margin:auto"/> #""" ENDLESS_PAGINATION_LOADING = """ <div class="spinner small" style="margin:auto"> <div class="block_1 spinner_block small"></div> <div class="block_2 spinner_block small"></div> <div class="block_3 spinner_block small"></div> </div> """ DEBUG_TOOLBAR_CONFIG = { "INTERCEPT_REDIRECTS": False, } import django.template.loader django.template.loader.add_to_builtins("web.templatetags.cb_tags") django.template.loader.add_to_builttagins."" ) WATSON_POSTGRESQL_SEARCH_CONFIG = "public.english_nostop" 

Een van de instellingenbestanden:

(cb)[email protected] /srv/www/cb/cb/ instellingen $ cat development.py van basisimport * DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = ["127.0.0.1", "31.31.78.149"] DATABASES = { "default": { "ENGINE": "django.db.backends. postgresql_psycopg2", "NAME": "cwu", "USER": "clime", "PASSWORD": "", "HOST": "", "PORT": "", } } MEDIA_ROOT = "/srv/www/ cb/media/" STATIC_ROOT = "/srv/www/cb/static/" TEMPLATE_DIRS = ( "/srv/www/cb/web/templates", "/srv/www/cb/templates", )  

Codeer in manage.py:

(cb)[email protected] /srv/www/cb $ cat manage.py #!/ usr/bin/env python import os import sys if __name__ == "__main__": os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "cb.settings.development") van django.core.management import execute_from_command_line execute_from_command_line(sys.argv) 

Als ik van basisimport * in /srv/www/cb/cb/settings/__init__.py (die verder leeg is), begint het op magische wijze te werken, maar ik begrijp niet waarom. Kan iemand me uitleggen wat hier aan de hand is? Het moet een of andere pythonmodule-magie zijn.

EDIT: Alles begint ook te werken als ik deze regel uit base.py verwijder

django.template.loader.add_to_builtins("web.templatetags.cb_tags") 

Als ik deze regel uit web.templatetags.cb_tags verwijder, wordt begint ook te werken:

van eindeloze_pagination.templatetags import eindeloos 

Ik denk dat het komt omdat het uiteindelijk leidt tot

van django.conf importeer instellingen PER_PAGE = getattr(settings, "ENDLESS_PAGINATION_PER_PAGE", 10) 

Dus het zorgt voor wat rare ronde dingen en game-over.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method