首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django配置文件,如何根据开发或生产环境配置路径

django配置文件,如何根据开发或生产环境配置路径
EN

Stack Overflow用户
提问于 2011-04-07 09:38:38
回答 2查看 610关注 0票数 1

根据im是在开发环境中还是在生产环境中,如何配置我的settings.py以使用不同的STATIC_ROOT和STATIC_URL?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-07 11:49:22

有几种方法可以做到这一点,最简单的是再导入一个文件(通常是local_settings.py)并覆盖主设置(生产设置在主settings.py中,本地更改在local_settings.py中)

代码:

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

另一种选择是保留几个独立的配置文件,如settings_prod.pysettings_dev.py等,每个文件都有自己的一组配置设置,但这是保持同步的噩梦。但是,将部分设置移动到单独的文件(如conf/db.pyconf/app_data.pyconf/locale.pyconf/logging.py等)然后在设置文件中导入它们会有很大帮助。这些设置通过指定-s--settings选项使用,并将模块名称作为参数(不带.py部件)。

我已经看到了第二个选项的一些扩展,这组设置是根据环境变量/路径/机器名自动选择的。因此,只有一个settings.py和一个代码来选择要加载的设置。这个选项很好用,所以您不需要一直指定-s

最后但并非最不重要的一点是使用django-admin.py而不是manage.py。这两个文件的不同之处在于,manage.py为特定项目设置了一个DJANGO_SETTINGS_MODULE环境变量。但是,如果您的开发需要一个虚拟环境,您可以将本地DJANGO_SETTINGS_MODULE设置为指向正确的设置文件,然后使用django-admin.py,而不需要指定配置。

项目之间的切换也应该很容易。

我确信还有更多的选项,但至少您可以看到有哪些选项:)

票数 3
EN

Stack Overflow用户

发布于 2011-04-07 09:45:56

通常我有两个settings.py文件,local_settings.py和settings.py,local_settings.py用于设置环境中的本地变量。通常,db、路径、调试设置都放在这里。此文件永远不会放入版本控制中。有一个local_settings.py.tmpl文件保存了需要设置的设置。

然后在settings.py中我有from local_settings import *注释,如果你在local_settings文件中使用INSTALLED_APPS或任何基于元组的设置,settings.py将需要调整。例如,在settings.py中将INSTALLED_APPS = ()更改为INSTALLED_APPS += ()

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

https://stackoverflow.com/questions/5574979

复制
相关文章

相似问题

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