Django: ImperlyConfigured: SECRET_KEY 설정이 비어 있으면 안 됩니다.

| | | | | | | | | |

일부 기본 설정이 포함된 여러 설정 파일(개발, 프로덕션, ..)을 설정하려고 합니다. 그래도 성공할 수 없습니다. ./manage.py runserver를 실행하려고 하면 다음 오류가 발생합니다.

(cb)[email protected] /srv/www/cb $ ./ manage.py runserver 부적절하게 구성됨: SECRET_KEY 설정은 비어 있으면 안 됩니다. 

여기 내 설정 모듈이 있습니다:

(cb)[email protected] /srv/www/cb/cb/settings $ ll 총 24 -rw- rw-r--. 1 clime clime 8230 Oct 2 02:56 base.py -rw-rw-r--. 1 기후 489 Oct 2 03:09 development.py -rw-rw-r--. 1 기후 24 Oct 2 02:34 __init__.py -rw-rw-r--. 1 clime clime 471 Oct 2 02:51 production.py 

기본 설정(SECRET_KEY 포함):

(cb)[email protected] /srv/www /cb/cb/settings $ cat base.py: # cb 프로젝트를 위한 Django 기본 설정. django.conf.global_settings를 기본값으로 가져오기 DEBUG = False TEMPLATE_DEBUG = False INTERNAL_IPS = ("127.0.0.1",) ADMINS = ( ("clime", "[email protected]"), ) MANAGERS = ADMINS DATABASES = { "기본값 ": { #"ENGINE": "django.db.backends.postgresql_psycopg2", # "postgresql_psycopg2", "mysql", "sqlite3" 또는 "oracle"을 추가합니다. "ENGINE": "django.db.backends.postgresql_psycopg2", "NAME": "cwu", # 또는 sqlite3을 사용하는 경우 데이터베이스 파일의 경로. "USER": "clime", # sqlite3에서는 사용되지 않습니다. "PASSWORD": "", # sqlite3에서는 사용되지 않습니다. "HOST": "", # localhost에 대해 빈 문자열로 설정합니다. sqlite3와 함께 사용되지 않습니다. "PORT": "", # 기본값은 빈 문자열로 설정합니다. sqlite3와 함께 사용되지 않습니다. } } # 이 설치의 현지 시간대. 선택 항목은 다음에서 찾을 수 있습니다. # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # 모든 운영 체제에서 모든 선택 항목을 사용할 수 있는 것은 아닙니다. # Windows 환경에서는 시스템 시간대로 설정해야 합니다. TIME_ZONE = "Europe/Prague" # 이 설치를 위한 언어 코드. 모든 선택은 다음에서 찾을 수 있습니다. # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = "en-us" SITE_ID = 1 # 이것을 False로 설정하면 Django는 다음과 같이 몇 가지 최적화를 수행합니다. # 국제화 기계를 로드하는 것이 아닙니다. USE_I18N = False # 이것을 False로 설정하면 Django는 현재 로케일에 따라 날짜, 숫자 및 # 달력 형식을 지정하지 않습니다. USE_L10N = False # TODO: 이를 사실로 만들고 날짜 시간 입력에 익숙해지도록 DATE_INPUT_FORMATS = defaults.DATE_INPUT_FORMATS + ("%d %b %y", "%d %b, %y") # + ("25 Oct 13", " 25 Oct, 13") # 이것을 False로 설정하면 Django는 시간대 인식 날짜 시간을 사용하지 않습니다. USE_TZ = True # 사용자가 업로드한 파일을 저장할 디렉토리의 절대 파일 시스템 경로. # 예: "/home/media/media.lawrence.com/media/" MEDIA_ROOT = "/srv/www/cb/media" # MEDIA_ROOT에서 제공되는 미디어를 처리하는 URL. # 후행 슬래시를 사용해야 합니다. # 예: "http://media.lawrence.com/media/", "http://example.com/media/" MEDIA_URL = "/media/" # 정적 파일이 수집되어야 하는 디렉터리의 절대 경로. # 이 디렉토리에 아무 것도 넣지 마십시오. 정적 파일을 # apps" "static/" 하위 디렉토리와 STATICFILES_DIRS에 저장하십시오. # 예: "/home/media/media.lawrence.com/static/" STATIC_ROOT = "/srv/www/cb/static" # 정적 파일의 URL 접두사. # 예: "http://media.lawrence.com/static/" STATIC_URL = "/static/" # 정적 파일의 추가 위치 STATICFILES_DIRS = ( # 여기에 "/home/html/static" 또는 "C :/www/django/static". # Windows에서도 항상 슬래시를 사용합니다. # 상대 경로가 아닌 절대 경로를 사용하는 것을 잊지 마십시오. ) # 다양한 위치에서 정적 파일을 찾는 방법을 알고 있는 # 파인더 클래스 목록 . STATICFILES_FINDERS = ( "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder", # "django.contrib.staticfiles.finders.DefaultStorageFinder", ) # 이것을 고유하게 만들고 Don" 누구와도 공유하지 마십시오. SECRET_KEY = "8lu*6g0lg)9z!ba+a$ehk)xt)x%rxgb$i1&amp;022shmi1jcgihb*" # 다양한 소스에서 템플릿을 가져오는 방법을 알고 있는 콜러블 목록입니다. 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.CsrfViewMiddleware", "django.contrib .auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "watson.middleware.SearchContextMiddleware", "debug_toolbar.middleware.DebugToolbarMiddleware ", "middleware.UserMemberMiddleware", "middleware.ProfilerMiddleware", "middleware.VaryOnAcceptMiddleware", # 간단한 클릭재킹 방지를 위해 다음 줄의 주석 처리를 제거합니다. # "django.middleware.clickjacking.XFrameOptionsMiddleware", ) ROOT_URLCONF = "cb.urls" # Django의 runserver에서 사용하는 WSGI 애플리케이션에 대한 Python 점선 경로. WSGI_APPLICATION = "cb.wsgi.application" TEMPLATE_DIRS = ( # "/home/html/django_templates" 또는 "C:/www/django/templates"와 같은 문자열을 여기에 입력합니다. # Windows에서도 항상 슬래시를 사용합니다. # Don "상대 경로가 아닌 절대 경로를 사용하는 것을 잊지 마십시오. "/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", # 앞에 있어야 합니다. admin "django.contrib.admin", "django.contrib.admindocs", "endless_pagination", "debug_toolbar", "djangoratings", "watson", "web", ) AUTH_USER_MODEL = "web.User" # 샘플 로깅 구성 이 구성에 의해 수행되는 유일한 유형의 로깅은 # DEBUG=False일 때 HTTP 500 오류가 발생할 때마다 사이트 관리자에게 이메일을 보내는 것입니다. # http://docs.djangoproject.com/en/dev/topics/logging 참조 # 로깅 구성을 사용자 정의하는 방법에 대한 자세한 정보 LOGGING = { "버전": 1, "disable_existing_loggers": 거짓, "필터": { "require_debug_false": { "()": "django.utils.log.RequireDebugFalse" } }, "포맷터": { "표준": { " 형식" : "[%(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", "파일 이름": "/srv/www/cb/logs/application.log", "maxBytes": 50000, "backupCount": 2, "포맷터": "표준", }, "console":{ "level":"INFO", "class":"logging.StreamHandler", "formatter": "standard" }, }, "loggers": { "django.request": { "handlers": ["mail_admins"], "레벨": "오류", "전파": True, }, "django": { "handlers":["console"], "전파": True, "레벨":"경고" , }, "django.db.backends": { "핸들러": ["콘솔"], "레벨": "DEBUG", "propagate": False, }, "web": { "handlers": ["console", "logfile"], "level": "DEBUG", }, }, } LOGIN_URL = "로그인" LOGOUT_URL = "로그아웃" #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_builtins("web.libtemplatertags") ) WATSON_POSTGRESQL_SEARCH_CONFIG = "public.english_nostop" 

설정 파일 중 하나:

(cb)[email protected] /srv/www/cb/cb/ 기본 가져오기에서 $ cat development.py 설정 * DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = ["127.0.0.1", "31.31.78.149"] DATABASES = { "기본": { "ENGINE": "django.db.backends. postgresql_psycopg2", "이름": "cwu", "USER": "clime", "PASSWORD": "", "호스트": "", "포트": "", } } MEDIA_ROOT = "/srv/www/ cb/media/" STATIC_ROOT = "/srv/www/cb/static/" TEMPLATE_DIRS = ( "/srv/www/cb/web/templates", "/srv/www/cb/templates", )  

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") from django.core.management import execute_from_command_line execute_from_command_line(sys.argv) 

from base import */srv/www/cb/cb/settings/__init__.py(다른 경우는 비어 있음)에 넣으면 마법처럼 작동하기 시작하지만 이유를 이해할 수 없습니다. 누구든지 여기에서 무슨 일이 일어나고 있는지 설명할 수 있습니까? 파이썬 모듈의 마술이 틀림없습니다.

편집: base.py에서 이 줄을 제거하면 모든 것이 작동하기 시작합니다.

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

web.templatetags.cb_tags에서 이 줄을 제거하면 또한 작동하기 시작합니다.

from 끊임없는_pagination.templatetags 가져오기 끝없는 

결국

from django.conf import settings PER_PAGE = getattr(settings, "ENDLESS_PAGINATION_PER_PAGE", 10) 

그래서 이상한 원형을 만들고 게임 오버가 됩니다.

Django: ImperlyConfigured: SECRET_KEY 설정이 비어 있으면 안 됩니다. __del__: Questions

Django: ImperlyConfigured: SECRET_KEY 설정이 비어 있으면 안 됩니다. _files: Questions

Shop

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

$

Best laptop for Zoom

$499

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

News

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