2013-11-28 16 views
2

這裏Django的最好的辦法是我公司設計的方法,只是想知道如果任何人有更好的事情:支持開發特定的配置/設置

在Settings.py(底部)

#... 

try: 
    if socket.gethostname() == 'testsite': 
     from myir.local.TEST_settings import * 
    elif socket.gethostname() == 'prod': 
     from myir.local.PROD_settings import * 
    else: 
     from myir.local.DEV_settings import * 
     try: 
      # dev settings - don't commit local_settings.py 
      from proj.local.local_settings import * 
     except: 
      print "no local dev settings found..." 
      pass # intentionally do nothing. 

except ImportError: 
    pass 

LOCAL_SETTINGS的.py:

DEBUG = True 

LOGGING = { .. } # i usually keep maximum aount of logging possible in my dev environment. 

... other configs you might want to override. 
+0

這不是做這件事的一種罕見的方式。儘管我個人更喜歡使用部署系統,以便prod需要的配置文件存在於部署服務器或prod服務器上。然後在部署時,系統會以正確的配置浮動,或者我們從環境變量中獲取配置。 –

回答

2

Django提供環境變量DJANGO_SETTINGS_MODULE指定設置的模塊來使用。您可以在那裏指定settings.my_prod_module,這可以使生產中的設置不同。在本地你可以指定一個不同的值。

你也可以在你的WSGI文件中指定的值:

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings.my_prod_module'