Django setting.py 文件设置
2017-12-07 本文已影响11人
镜kong
setting.py 文件是django项目最重要的配置文件
通常在本地开发的时候和 部署在生产服务器中时有些配置是不同的 比如 DEBUG = True/False 等,如何管理多环境下的 setting.py 文件呢?
1 配置两份完全不通的配置文件 不通环境下通过环境变量或启动服务器的工具来 指定要启动的配置文件
2 将配置文件分离 base.py local.py project.py 通用的配置放在base 本地和生产的差异部分分别放在 local 和 project local和 project 分别继承base 这种方法和 1 差不多 只是 更优雅点。不过我觉得上述两种方法还要配置服务器端比较麻烦。
3.维护一份配置文件 进行判断 我使用这种方法
import socket
# 通过导入socket模块 来获取本地的主机名 来判断现在是 本地还是生产环境(ubunt-virtual-machine 就是我的生产服务器的主机名)
if socket.gethostname() == 'ubunt-virtual-machine':
DEBUG = False
ALLOWED_HOSTS = ['*']
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app.apps.AppConfig',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'ckeditor',
'ckeditor_uploader',
'gunicorn',
]
else:
DEBUG = True
ALLOWED_HOSTS = []
然后进行差异设置