Django 拆分 settings.py 配置模块

在 Django 项目中,settings.py 是一个单独的配置模块,我们在进行开发环境、测试环境和线上环境配置时不太容易处理,如果只在这一个文件里写这 3 个环境的配置,维护起来十分麻烦。因此,我们需要把这个 settings.py 拆成一个 python package,不同的配置分别定义成不同的模块(module)。

如要将 settings.py 进行拆分,按如下步骤操作即可:

1.首先在 settings.py 的同级目录下新建一个 python package,命名为:settings
在这里插入图片描述
2.将 settings.py 移动到 settings 包下,并重命名为 base.py

3.修改 base.py 中的变量 BASE_DIR,增加一层目录:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

4.在 settings 包下新建一个 develop.py 文件,将 base.py 中的部分内容剪切写入开发环境的配置(开启调试模式,数据库配置),并在 develop.py 的最上面引入 base.py 的所有配置:

from .base import *  # NOQA

# SECURITY WARNING: don't run with debug turned on in production!
# 调试模式,可以看到错误的所有相关信息,部署时一定要修改为 False
DEBUG = True

# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
     }
}

其中 # NOQA 这个注释的作用是告诉 PEP8 规范检测工具,这个地方不需要检测。当然,我们也可以在文件首行增加 # flake8: NOQA 来告诉规范检测工具,这个文件不用检查。

现在的项目结构如下图:
在这里插入图片描述

5.拆分完 settings.py 后,还需要修改两个文件:manage.py 和 wsgi.py,将这句代码:os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_blog.settings') 修改成以下代码:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_blog.settings.develop')

6.最后就是配置好 pycharm 的环境变量,才能成功运行,不然会报错:django.core.exceptions.ImproperlyConfigured:The SECRET_KEY setting must not be empty.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值