gpt4 book ai didi

django - 我的 Django key 位于环境变量中,但我无法执行syncdb

转载 作者:行者123 更新时间:2023-12-02 08:06:07 25 4
gpt4 key购买 nike

我正在设置一个 Django 项目,其中包含用于本地和生产设置的不同文件。我可以确认我的 Django key 已成功位于 virtualenv 中的环境变量中,并且当我执行 runserver 时,我没有收到任何错误。但是,当我尝试manage.pysyncdb时,我得到了

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

我不明白为什么我可以在 runserver 之后成功浏览到该站点,但无法同步数据库。当我运行 env 时,我可以看到 key 在那里,并且在我的基本设置文件(导入到本地设置中)中,我正在这样做:

SECRET_KEY = os.environ.get('MY_SECRET_KEY')

任何调试帮助将不胜感激。

尤安

最佳答案

我不确定为什么 runserver 命令可以工作而syncdb 不能,但是您可以通过为 DJANGO_SETTINGS_MODULE 添加环境变量来解决这个问题,就像为 SECRET_KEY 所做的那样。唯一的区别是您不需要在 django 代码中的任何地方引用 DJANGO_SETTINGS_MODULE。我正在以完全相同的方式运行我自己的设置,我遇到的唯一问题是在项目之间切换时忘记更改设置模块:-)

编辑:我没有意识到您将 --settings=myapp.settings.local 添加到 runserver 以及 syncdb。您需要这样做的原因是您使用的设置与默认路径不同,因此 python 无法找到它们。另外,虽然您在 wsgi 文件中设置了 DJANGO_SETTINGS_MODULE,但只有通过网络服务器访问站点时才会触发该设置。运行管理命令时,wsgi 文件将被忽略(AFAIK),因此以与 SECRET_KEY 相同的方式将 DJANGO_SETTINGS_MODULE 添加到环境变量中,使您的设置文件可用于管理命令。

希望有帮助

关于django - 我的 Django key 位于环境变量中,但我无法执行syncdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19681102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com