我在服务器上通过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吗?
答案 0 :(得分:2)
是的,您的设置按预期工作。虽然如果你使用像芹菜这样的额外工具,你可能还需要为这些设置指定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