《Django By Example》

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 = []

然后进行差异设置

上一篇下一篇

猜你喜欢

热点阅读