Django setting.py 文件设置

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

然后进行差异设置

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,156评论 19 139
  • (一)、启动服务器 (二)、创建数据库表 或 更改数据库表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星阅读 5,775评论 0 17
  • 项目部署到阿里云(nginx+uwsgi)上后,静态文件加载没有问题。但是在本地,使用开发服务器,却始终加载不成功...
    兰山小亭阅读 5,667评论 0 9
  • 测试类 运行stop时:控制台打印:开始执行:Wed Apr 05 15:33:35 CST 2017运行inte...
    perfect_jimmy阅读 1,377评论 0 0
  • 时空穿越的面馆 格格昨晚做梦哭了,说我小时候喜欢吃的那家面馆没面了,我没吃着,所以她伤心得哭了。啊,我好意外好...
    阿连格格阅读 232评论 0 0