1

这个问题问但答案不是关于使用 Gunicorn。

如何DJANGO_SETTINGS_MODULE在我的生产环境中正确设置为生产,并在我的暂存环境中进行暂存?

我有两个设置文件 -staging.pyproduction.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在我的登台和生产服务器上一劳永逸地设置的正确方法是什么?

4

0 回答 0