【发布时间】:2019-12-24 19:54:16
【问题描述】:
我使用根文件夹中的 .bashrc 文件在本地 ubuntu mashine 和 AWS Ubuntu 服务器上设置 django 项目设置并为环境变量添加值。
...
export DEBUG="True"
...
settings.py
...
SECRET_KEY = os.environ.get('SECRET_KEY')
DEBUG = os.environ.get('DEBUG', False)
...
在本地一切正常,但在生产服务器值未导入。为什么它不能在两台机器上工作?如何设置生产?
我正在使用 asgi 服务器 daphne 运行生产服务器,因此tutorial
更新
asgi.py
import os
import django
from channels.routing import get_default_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
django.setup()
application = get_default_application()
【问题讨论】:
-
您应该使用这些值设置一个
.env文件并将其推送到 AWS。记得把它放在.gitignore -
“服务器值未导入”是什么意思?您是否使用
os.environ['DEBUG']在您的设置中导入它?你有错误吗?价值观错了吗?另外,你如何运行你的生产 django?独角兽? uWSGI? gunicorn 进程中定义了哪个用户? -
@HigorRossato 我使用 settings.py 在同一文件夹中创建了
.env文件,添加了值并重新启动服务器,但什么也没有 -
@dirkgroten 我已经完成了这个问题。我收到一个 SECRET_KEY 错误。我使用 asgi 服务器 daphne 运行生产
-
环境变量存在但未传递到您的服务器。我在使用 apache2/wsgi 服务器时遇到了这个问题。我通过将变量添加到
/etc/apache2/envvars来解决它。 asgi中是否有类似的东西?可以显示asgi.py的内容吗?
标签: django ubuntu django-settings daphne