簡體   English   中英

Django:即使SECRET_KEY設置存在於設置中,它也不能為空

[英]Django: The SECRET_KEY setting must not be empty even if it exists in settings

我在windows 7使用python 3.5django 1.11.5

我有包含base.py,mysql.py和sqlite.py的設置文件夾

manage.py包含:

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

當我嘗試python manage.py makemigrations我收到以下錯誤:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "c:\Python35\lib\site-packages\django\core\management\__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "c:\Python35\lib\site-packages\django\core\management\__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "c:\Python35\lib\site-packages\django\core\management\__init__.py", line 206, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "c:\Python35\lib\site-packages\django\core\management\__init__.py", line 40, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "c:\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 662, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "c:\Python35\lib\site-packages\django\core\management\commands\migrate.py", line 15, in <module>
    from django.db.migrations.autodetector import MigrationAutodetector
  File "c:\Python35\lib\site-packages\django\db\migrations\autodetector.py", line 13, in <module>
    from django.db.migrations.questioner import MigrationQuestioner
  File "c:\Python35\lib\site-packages\django\db\migrations\questioner.py", line 12, in <module>
    from .loader import MigrationLoader
  File "c:\Python35\lib\site-packages\django\db\migrations\loader.py", line 10, in <module>
    from django.db.migrations.recorder import MigrationRecorder
  File "c:\Python35\lib\site-packages\django\db\migrations\recorder.py", line 12, in <module>
    class MigrationRecorder(object):
  File "c:\Python35\lib\site-packages\django\db\migrations\recorder.py", line 26, in MigrationRecorder
    class Migration(models.Model):
  File "c:\Python35\lib\site-packages\django\db\migrations\recorder.py", line 27, in Migration
    app = models.CharField(max_length=255)
  File "c:\Python35\lib\site-packages\django\db\models\fields\__init__.py", line 1061, in __init__
    super(CharField, self).__init__(*args, **kwargs)
  File "c:\Python35\lib\site-packages\django\db\models\fields\__init__.py", line 172, in __init__
    self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE
  File "c:\Python35\lib\site-packages\django\conf\__init__.py", line 56, in __getattr__
    self._setup(name)
  File "c:\Python35\lib\site-packages\django\conf\__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "c:\Python35\lib\site-packages\django\conf\__init__.py", line 129, in __init__
    raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

如果我將os.environ.setdefault更改為manage.py如:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "GuardianAngel.settings.base")

重要的是要注意base.py包含SECRET_KEY如:

SECRET_KEY = 'i$778^0hplfwr_tgm$7p!azz61lkif6qz#-0_*k4o88tq6=7aw'

我沒有得到這個錯誤,我收到有關mysql的錯誤。

settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

你知道怎么解決這個問題嗎?

將其設置為:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "GuardianAngel.settings.base")

但在你的base.py添加:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'DB_NAME',
        'USER': 'DB_USERNAME',
        'PASSWORD': 'DB_PASSWORD',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

或者更好的是,在GuardianAngel中創建另一個名為local_settings.py文件並添加

from settings.base import *

然后添加上面提到的DATABASES

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM