在进行Django开发时,我倾向于使用SQLite,但在实时服务器上,通常需要更健壮的工具(例如MySQL/PostgreSQL)。通常,还需要对Django设置进行其他更改:不同的日志记录位置/强度、媒体路径等。
您如何管理所有这些更改,使部署成为一个简单、自动化的过程?
发布于 2008-09-18 03:45:38
就我个人而言,我为这个项目使用了一个settings.py,我只是让它查找它所在的主机名(我的开发机器的主机名以"gabriel“开头,所以我只有:
import socket
if socket.gethostname().startswith('gabriel'):
LIVEHOST = False
else:
LIVEHOST = True
然后在其他部分,我有类似这样的东西:
if LIVEHOST:
DEBUG = False
PREPEND_WWW = True
MEDIA_URL = 'http://static1.grsites.com/'
else:
DEBUG = True
PREPEND_WWW = False
MEDIA_URL = 'http://localhost:8000/static/'
诸若此类。可读性稍差一些,但它工作得很好,并且省去了必须处理多个设置文件的麻烦。
发布于 2008-09-18 10:57:15
在settings.py的末尾,我有以下内容:
try:
from settings_local import *
except ImportError:
pass
这样,如果我想覆盖默认设置,我只需要将settings_local.py放在settings.py旁边。
发布于 2008-09-17 22:29:31
我有两份文件。包含通用/默认设置的settings_base.py
,并签入到源代码管理中。每个部署都有一个单独的settings.py
,它在开始时执行from settings_base import *
,然后根据需要进行覆盖。
https://stackoverflow.com/questions/88259
复制相似问题