这个问题问但答案不是关于使用 Gunicorn。
如何DJANGO_SETTINGS_MODULE
在我的生产环境中正确设置为生产,并在我的暂存环境中进行暂存?
我有两个设置文件 -staging.py
和production.py
.
因为我在设置变量时遇到了问题,所以我只是让 manage.py 和 wsgi.py 中的默认行看起来像:
管理.py
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.production")
wsgi.py
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.production")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
...所以在生产中,无论这个讨厌的变量是什么恶作剧,如果DJANGO_SETTINGS_MODULE
没有设置,我的生产应用程序将保持生产设置。
问题是我希望我的登台应用程序保持在登台设置上,这样电子邮件就不会从那个(单独的)服务器发出。
我有上述文件暂存,以及这些尝试正确设置settings.staging
:
gunicorn.conf:
description "Gunicorn daemon for Django project"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectadly trigger a respawn
respawn
setuid django
setgid django
chdir /src
script
export DJANGO_SETTINGS_MODULE="settings.staging"
exec /opt/Envs/mysite/bin/gunicorn \
--name=mysite \
--pythonpath=/opt/Envs/mysite/lib/python2.7/site-packages \
--bind=127.0.0.1:9000 \
--config /src/bin/gunicorn/gunicorn.py \
mysite.wsgi:application
end script
此外,一个名为的文件/etc/profile.d/myenvvars.sh
包含:
export DJANGO_SETTINGS_MODULE=settings.staging
最后,我正在使用 virtualenvwrapper,这一行在/opt/Envs/myappenv/bin
:
export DJANGO_SETTINGS_MODULE=settings.staging
如您所见,我正在尝试使用腰带和吊带技术来保持设置以在登台服务器上登台。然而,尽管有这四种尝试设置DJANGO_SETTINGS_MODULE=settings.staging
的方法,但有时仍会默认settings.production
发送电子邮件。
DJANGO_SETTINGS_MODULE
在我的登台和生产服务器上一劳永逸地设置的正确方法是什么?