Django + WSGI:什么时候调用 wsgi.py?

Django + WSGI: When is wsgi.py called?

我通过 Apache2 在服务器上部署了我的 Django 项目。

我的问题是我有两个设置模块:settings.py 是我的本地开发设置,settingsprod.py 是我的生产设置。

我在 WSGI.py 中找到以下行:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings")

这个模块是不是只有在使用WSGI的时候才会调用?如果是的话,这是一个像这样使用我的生产设置的好地方吗?

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settingsprod")

对于本地开发,我像这样使用开发服务器:

python3 manage.py runserver

那还是默认为settings.py吗?

是的,您的设置符合预期。尽管如果您使用芹菜等额外工具,您可能还需要为这些设置指定 settingsprod

我处理这种情况的方式恰恰相反:我使用 settings.py 作为我的生产设置,并有一个额外的 settings_development.py 用于所有开发任务。这样我就不必记住在所有与生产相关的文件中设置生产设置,而只需像这样使用开发设置进行开发:

python3 manage.py runserver --settings=proj.settings_development

如果您经常使用 manage.py 命令并希望节省一些打字时间,您可以复制您的 manage.py,例如作为 manage_dev.py 并像这样更改设置模块行:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings_development")

然后调用您的管理函数:

python3 manage_dev.py runserver