【问题标题】:Django raise KeyError(key) From None?Django从无引发KeyError(key)?
【发布时间】:2018-06-23 18:11:04
【问题描述】:

我正在尝试将我的项目部署到生产环境中,但无法正确配置它。这是我得到的当前错误

    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\1111\Desktop\2222\2222\settings.py", line 23, in <module>
    SECRET_KEY = os.environ['SECRET_KEY']
  File "C:\Users\1111\AppData\Local\Programs\Python\Python36-32\lib\os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'SECRET_KEY'

C:\Users\1111\Desktop\2222>

settings.py 的第 23 行

SECRET_KEY = os.environ['SECRET_KEY']

请帮忙,不知道该怎么办

在 wsgi.py 上好的,我把它粘贴到了

os.environ["SECRET_KEY"] = 'abcdef'

我保存了,尝试再次运行,但出现同样的错误:

    raise KeyError(key) from None
KeyError: 'SECRET_KEY'

好的,我尝试使用 "os.environ.get('SECRET_KEY', "default_value")" 代替,现在它可以工作了,我得到了

“CommandError:如果 DEBUG 为 False,您必须设置 settings.ALLOWED_HOSTS。”而是

现在要解决我尝试过的上述问题

ALLOWED_HOSTS = ['*']

在 settings.py 中,它起作用了!

【问题讨论】:

  • 不要使用os.environ['SECRET_KEY']。使用os.environ.get('SECRET_KEY', "default_value")。并在服务器的环境变量中定义SECRET_KEY

标签: python django


【解决方案1】:

你需要定义一个 SECRET_KEY 环境变量,你可以按照 here 给出的步骤来完成

【讨论】:

  • 如果您使用的是 Windows,请使用 set SECRET_KEY="your_secret_key"
【解决方案2】:

你应该使用

password = str(os.environ.get('PASSWORD')) 

而不是使用

password = str(os.environ['PASSWORD'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 2021-05-29
    • 2020-11-20
    • 1970-01-01
    相关资源
    最近更新 更多