建议处理本地开发和生产服务器设置的建议方式是什么?它们中的某些(例如常量等)可以在两者中进行更改/访问,但是其中一些(例如静态文件的路径)需要保持不同,因此,每次部署新代码时都不应覆盖它们。
当前,我将所有常量添加到中settings.py。但是每次我在本地更改某些常量时,都必须将其复制到生产服务器并编辑文件以进行生产特定更改… :(
settings.py
编辑:这个问题似乎没有标准答案,我已经接受了最受欢迎的方法。
编辑:这个问题似乎没在settings.py:
try: from local_settings import * except ImportError as e: pass
你可以覆盖需要的内容local_settings.py;然后,它应该脱离版本控制。但是由于你提到复制,我猜你没有使用;)有标准答案,我已经接受了最受欢迎的方法。
local_settings.py
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