为不同环境维护单独设置的方法?

时间:2012-01-05 02:33:11

标签: django django-settings

我的django项目有两个环境 - 开发和测试。今天我不小心用开发中的那个覆盖了测试中的settings.py。我花了一些时间来纠正测试中的设置,如果我有一个很好的方法可以分别维护这两组设置,那就可以避免。

我想保留两个单独的settings.py副本,并在需要时重命名/移动它们。然而,这是一种有点穴居人的做法。有没有更聪明的方法来处理这个问题?

2 个答案:

答案 0 :(得分:3)

  1. 在settings.py文件的末尾添加:

    try:
        from settings_dev import *
    except ImportError: pass
    

    其中settings_dev.py将包含开发设置。在你的生产环境中,不要推送settings_dev(只需在.gitingore或你的源代码版本控制系统中忽略它。)

    因此,当settings_dev.py存在时,settings.dev.py文件将覆盖settings.py。

  2. 通过设置环境变量的另一种方法:

    if os.environ.get('DEVELOPMENT', None):
        from settings_dev import *
    

    这里提到:Django settings.py for development and production

  3. 我更喜欢第一个,它很简单,只是有效。

答案 1 :(得分:2)