使用Fabric进行INSTALLED_APPS的本地设置

Ale*_*xis 5 django fabric

我有一个应用程序(django-compressor),我只想在我的本地机器而不是服务器上运行.我知道的

try:
    from local_settings import *
except ImportError:
    pass 
Run Code Online (Sandbox Code Playgroud)

特技.但我不知道是否有更好的方式来删除应用程序,我只希望在当地办起了INSTALLED_APPSsettings.py使用衣物.

Tim*_*ony 10

我认为你提到的标准方法是最好的; 创建一个settings包含三个设置文件的文件夹 shared.py,production.pydevelopment.py.放置应用程序的所有实例共有的设置shared.py,这是从production.py和导入的development.py.然后,您可以轻松添加compressor开发设置

shared.py

INSTALLED_APPS = (...)
Run Code Online (Sandbox Code Playgroud)

development.py

from settings.shared import *
INSTALLED_APPS += ('compressor',)
Run Code Online (Sandbox Code Playgroud)

您需要确保在开发时使用development.py设置文件运行开发服务器:

python manage.py --settings=settings.development 
Run Code Online (Sandbox Code Playgroud)

同样在你的生产服务器上你做同样的事情production.py(这取决于你的实现)

从长远来看,这是一种更好的方法,因为您也可以指定单独的缓存,数据库,搜索等设置.

另外compressor,您可以简单地启用和禁用正在使用它的COMPRESS_ENABLED设置,而不是从已安装的应用程序中完全删除


Zhe*_* Li 6

你也可以用另一种方式来做.

所有共享设置都在settings.py中,并在local_settings中保持不同.在您的情况下,它是INSTALLED_APPS,您可以将导入部分更改为以下内容:

DEV_APPS = None
try:
    from local_settings import *
    INSTALLED_APPS += DEV_APPS
except:
    PASS
Run Code Online (Sandbox Code Playgroud)

这是你的local_settings.py:

DEV_APPS = ('compressor',)
Run Code Online (Sandbox Code Playgroud)