首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Fabric的INSTALLED_APPS的本地设置

使用Fabric的INSTALLED_APPS的本地设置
EN

Stack Overflow用户
提问于 2012-02-22 17:54:44
回答 4查看 4K关注 0票数 5

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

代码语言:javascript
复制
try:
    from local_settings import *
except ImportError:
    pass 

小把戏。但我想知道是否有更好的方法来删除我只想使用Fabric从settings.py中的INSTALLED_APPS本地运行的应用程序。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-22 18:28:57

我认为你提到的标准方法是最好的;创建一个包含三个设置文件的文件夹settingsshared.pyproduction.pydevelopment.py。你的应用程序的所有实例通用的设置都放在shared.py中,这是从production.pydevelopment.py导入的。然后,您可以很容易地只在开发设置中添加compressor

shared.py

代码语言:javascript
复制
INSTALLED_APPS = (...)

development.py

代码语言:javascript
复制
from settings.shared import *
INSTALLED_APPS += ('compressor',)

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

代码语言:javascript
复制
python manage.py --settings=settings.development 

同样,在您的生产服务器上,您可以对production.py执行相同的操作(这取决于您的实现)

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

顺便说一句,不需要从已安装的应用程序中完全移除compressor,只需使用其COMPRESS_ENABLED设置即可启用和禁用它

票数 10
EN

Stack Overflow用户

发布于 2013-05-21 18:19:43

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

所有共享设置都在settings.py中,并在local_settings中保留差异。在您的示例中,它是INSTALLED_APPS,您可以将导入部分更改为如下所示:

代码语言:javascript
复制
DEV_APPS = None
try:
    from local_settings import *
    INSTALLED_APPS += DEV_APPS
except:
    PASS

这是你的local_settings.py:

代码语言:javascript
复制
DEV_APPS = ('compressor',)
票数 6
EN

Stack Overflow用户

发布于 2015-04-08 15:18:37

我的方法是将原始的settings.py (由./manage.py startproject制造)重命名为base_settings.py。这样,所有的基线设置都在base_settings.py中。

然后,我将从base_settings.py创建一个新的settings.py文件,该文件将只包含所需的特定于环境的修改和覆盖。

因此,为了使用我的方法回答您的问题,我的settings.py将如下所示:

代码语言:javascript
复制
from .base_settings import *

INSTALLED_APPS += ('compressor',)

然后,将在settings.py中添加任何必要的特定于环境的设置。

使用这种方法,我不需要在调用./manage.py或设置DJANGO_SETTINGS_MODULE时指定--settings参数。

让我更容易管理不同的环境。

注意:对于这种方法,我使用git并将settings.py添加到.gitignore中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9392540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档