2010-01-21 31 views
5

Django设置包含一系列python变量,用于从数据库设置到已安装的应用程序的过多事物。即使许多可重复使用的应用程序也需要进行一些设置。Django动态设置基础结构和最佳实践

有数十个网站,很难管理所有项目的设置。

幸运的是,设置只是一个带变量的python模块,所以你可以用任何魔法来填充你想要的变量。

您采用了哪些做法或者您认为可以将各种相关设置分隔到不同的文件中?

显然,现有enterprisey实践是一个开发人员创建一个战争和OPS部门拍打它的青鱼,并采取所有的数据库(并且这样)OPS的东西(根据Jacob's email)的照顾。

您能创建什么样的动态settings.py将有助于现有的企业实践?

+0

https://code.djangoproject.com/wiki/SplitSettings#ini-stylefilefordeployment – 2012-02-29 09:17:02

回答

1

喜欢的东西我经常见过的设置文件:

from localsettings import * 

localsettings.py之类的数据库连接和DEBUG值定义。对于每个部署环境(dev/staging/production等),localsettings.py(或可能)是不同的,并且不与其他所有部分一起存在于源代码控制中。

事情我已经发现的有用最近是把这个在我的settings.py

try: 
    from localsettings import * 
except ImportError: 
    from default_localsettings import * 

default_localsettings.py我定义了一堆违约(DEBUG = True,在同一目录中使用SQLite数据库为default_localsettings.py等)。

这可能没有用,一旦你已经设置了一些东西,但我发现它很有用,只要能够检查我的项目脱离源代码管理,并使用runserver直接工作,而不必设置任何东西向上。