Fork me on GitHub

Django 项目配置拆分独立

Django 项目中,我们默认的配置是都在 settings.py 文件里面的,但是实际本地调试和线上应该是需要两个环境的,我们现在来拆分下配置。将配置拆分开来。

一、创建配置目录

我们在项目的跟路径下创建一个config 目录

二、创建基础配置文件

config 配置下 创建 base.py 文件,然后将原来 settings.py 文件内容拷贝过来。

三、创建各个环境的配置

注意我是把一些配置提取出来了,如果我们在 环境配置中加了的配置,在 base 中就不需要加了

创建 dev.py

from .base import * # 注意这个必须加,这个是将base 的配置导入

DEBUG = True
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "ops",
        "HOST": "127.0.0.1",
        "PORT": 3306,
        "USER": "root",
        "PASSWORD": "",
    },
}
ALIYUN_SECRETID = '123'

创建 prod.py

from .base import * # 注意这个必须加,这个是将base 的配置导入
DEBUG = False
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "ops",
        "HOST": "127.0.0.1",
        "PORT": 3306,
        "USER": "ops",
        "PASSWORD": "",
    },
}
ALIYUN_SECRETID = '123'

四、调整settings.py

将settings.py 原有的配置替换成下面的内容。

DJANGO_CONF_MODULE = 'config.{env}'.format(env='dev')

try:
    _module = __import__(DJANGO_CONF_MODULE, globals(), locals(), ['*'])
except ImportError as e:
    raise ImportError("Could not import config '%s' (Is it on sys.path?): %s"
                      % (DJANGO_CONF_MODULE, e))

for _setting in dir(_module):
    if _setting == _setting.upper():
        locals()[_setting] = getattr(_module, _setting)

上面配置是默认使用 dev 的配置。 假设我们要使用prod 的配置,就将 dev 替换成 prod

五、程序使用

from django.conf import settings
settings.ALIYUN_SECRETID # 引用

六、目录结构

image-20211118214742175

posted @   自由早晚乱余生  阅读(478)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2019-11-18 微信 AES 解密报错 Illegal key size 三种解决办法
点击右上角即可分享
微信分享提示