在Django中包含应用级设置的惯例是什么?对于例如我正在编写一个Django应用程序,它有一个视图,可以对另一个Web服务进行API调用,获取响应,修改它并将其返回。现在,我想有一个设置变量来保存这个API URL的值(并且根据Django Web服务器是否在stage / dev / prod中运行,API URL会有所不同)。我应该在app目录中创建settings.py
吗?或者修改项目settings.py
?如果我以后再做,那么应用程序不再是可插拔的/可移植的。那可以吗?
请提供您回复的理由(即请解释为什么在全局settings.py
中包含该设置可能是个好主意,即使它会降低应用的可移植性。)
感谢。
答案 0 :(得分:4)
制作全局settings.py
,并指定应用文档中需要哪些设置。您不应该制作特定于应用程序的settings.py
文件,除非它们具有一些不相关的内部使用。您可能希望使用getattr(settings, 'SOME_SETTING_NAME', 'default value')
之类的内容来获取默认选项。
如果您想为prod / staging / dev设置单独的设置,那么您需要创建一个settings/
文件夹,其中包含基于__init__.py
变量导入的ENV
文件