建议处理本地开发和生产服务器设置的建议方式是什么?它们中的某些(例如常量等)可以在两者中进行更改/访问,但是其中一些(例如静态文件的路径)需要保持不同,因此,每次部署新代码时都不应覆盖它们。
当前,我将所有常量添加到中settings.py。但是每次我在本地更改某些常量时,都必须将其复制到生产服务器并编辑文件以进行生产特定更改… :(
编辑:这个问题似乎没有标准答案,我已经接受了最受欢迎的方法。
在settings.py:
settings.py:
try: from local_settings import * except ImportError as e: pass
你可以覆盖需要的内容local_settings.py;然后,它应该脱离版本控制。但是由于你提到复制,我猜你没有使用;)
local_settings.py
Django的两个摘要:Django 1.5最佳实践建议对设置文件使用版本控制并将文件存储在单独的目录中:
project/ app1/ app2/ project/ __init__.py settings/ __init__.py base.py local.py production.py manage.py
该base.py文件包含常用的设置(如MEDIA_ROOT或ADMIN),而local.py和production.py有网站特定的设置:
base.py
local.py
production.py
在基本文件中settings/base.py:
settings/base.py:
INSTALLED_APPS = ( # common apps... )
在本地开发设置文件中settings/local.py:
settings/local.py
from project.settings.base import * DEBUG = True INSTALLED_APPS += ( 'debug_toolbar', # and other apps for local development )
在文件生产设置文件中settings/production.py:
settings/production.py
from project.settings.base import * DEBUG = False INSTALLED_APPS += ( # other apps for production site )
然后,在运行django时,添加以下--settings选项:
--settings
# Running django for local development $ ./manage.py runserver 0:8000 --settings=project.settings.local # Running django shell on the production site $ ./manage.py shell --settings=project.settings.production