Django:配置不當:SECRET_KEY 設置不能為空

| | | | | | | | | |

我正在嘗試設置多個包含一些基本設置的設置文件(開發、生產……)。雖然不能成功。當我嘗試運行 ./manage.py runserver 我收到以下錯誤:

(cb)[email protected] /srv/www/cb $ ./ manage.py runserver ImproperlyConfigured: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 clime clime 489 Oct 2 03:09 development.py -rw-rw-r--。 1 clime clime 20 月 24 日 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 = { "default ": { #"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": "", # 設置為本地主機的空字符串。不與 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/" # 靜態文件應該收集到的目錄的絕對路徑。 # 不要自己在這個目錄中放任何東西;將你的靜態文件存儲在應用程序“”“靜態/”子目錄和 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", ) # 使這個唯一,並且不要" t 與任何人分享。 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 運行服務器使用的 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,“格式化程序”:“標準”,}, “控制台”:{“級別”:“信息”,“類”:“logging.StreamHandler”,“格式化程序”:“標準”},},“記錄器”:{“django.request”:{“處理程序”: ["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 = "註銷" #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.templatetags.tag_library" ) WATSON_POSTGRESQL_SEARCH_CONFIG = "public.english_nostop" 

設置文件之一:

(cb)[email protected] /srv/www/cb/cb/設置 $ cat development.py from base import * 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", )  

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 (否則為空),它神奇地開始工作,但我不明白為什麼。任何人都可以向我解釋這裡發生了什麼?它一定是一些 python 模塊魔術。

編輯:如果我從 base.py 中刪除這一行,一切也開始工作

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

如果我從 web.templatetags.cb_tags 中刪除這一行,它也開始起作用了:

from never_pagination.templatetags import never 

我猜是因為,最後,它導致了

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

所以它會創建一些奇怪的循環內容並結束遊戲。

Django:配置不當:SECRET_KEY 設置不能為空 __del__: Questions

Django:配置不當: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