我有一个只想在本地机器上运行而不是在服务器上运行的应用程序(django-compressor)。我知道关于
try:
from local_settings import *
except ImportError:
pass 小把戏。但我想知道是否有更好的方法来删除我只想使用Fabric从settings.py中的INSTALLED_APPS本地运行的应用程序。
发布于 2012-02-22 18:28:57
我认为你提到的标准方法是最好的;创建一个包含三个设置文件的文件夹settings:shared.py、production.py和development.py。你的应用程序的所有实例通用的设置都放在shared.py中,这是从production.py和development.py导入的。然后,您可以很容易地只在开发设置中添加compressor
shared.py
INSTALLED_APPS = (...)development.py
from settings.shared import *
INSTALLED_APPS += ('compressor',)然后,您需要确保在开发时,使用development.py设置文件运行开发服务器:
python manage.py --settings=settings.development 同样,在您的生产服务器上,您可以对production.py执行相同的操作(这取决于您的实现)
从长远来看,这是一种更好的方法,因为您还可以指定单独的缓存、数据库、搜索等设置。
顺便说一句,不需要从已安装的应用程序中完全移除compressor,只需使用其COMPRESS_ENABLED设置即可启用和禁用它
发布于 2013-05-21 18:19:43
你也可以用另一种方式来做。
所有共享设置都在settings.py中,并在local_settings中保留差异。在您的示例中,它是INSTALLED_APPS,您可以将导入部分更改为如下所示:
DEV_APPS = None
try:
from local_settings import *
INSTALLED_APPS += DEV_APPS
except:
PASS这是你的local_settings.py:
DEV_APPS = ('compressor',)发布于 2015-04-08 15:18:37
我的方法是将原始的settings.py (由./manage.py startproject制造)重命名为base_settings.py。这样,所有的基线设置都在base_settings.py中。
然后,我将从base_settings.py创建一个新的settings.py文件,该文件将只包含所需的特定于环境的修改和覆盖。
因此,为了使用我的方法回答您的问题,我的settings.py将如下所示:
from .base_settings import *
INSTALLED_APPS += ('compressor',)然后,将在settings.py中添加任何必要的特定于环境的设置。
使用这种方法,我不需要在调用./manage.py或设置DJANGO_SETTINGS_MODULE时指定--settings参数。
让我更容易管理不同的环境。
注意:对于这种方法,我使用git并将settings.py添加到.gitignore中。
https://stackoverflow.com/questions/9392540
复制相似问题