django:根据不同环境读入不同配置的操作

django:根据不同环境读入不同配置的操作

原理

本人了解到两种两种方式,可以让django根据不同环境选择不同的配置文件,一种是在计算机中配置一个环境变量,通过读取环境变量来判断选择什么配置;另外一种,在runserver的时候,通过-settings来传入不同的参数控制读入不同的配置文件。
参考的文档为
https://juejin.im/post/5d3922c46fb9a07ead5a3e75
http://code4fs.xyz/article/2/

步骤

django 允许通过–settings来选择不同的配置文件

1、创建django环境 使用django-admin startproject XXX
2、在setting.py 文件的同级目录下创建settings文件夹
3、在settings文件夹中创建set_base.py,set_dev.py,set_test.py,set_prod.py(基础、开发、测试、生产)四个文件
添加settings文件夹
4、将setting.py文件中的公共配置部分,剪切到set_base.py中,根据不同的版本进行进行修改的配置,分别放置在另外几个文件中,settings.py文件即可删除。
例如 DEBUG = True 配置,在开发环境中,应该设置为True,在生产环境中应该设置为False
5、将manage.py中的
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘your_project.settings’)
改为
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘your_project.settings.set_base’)
manage.py文件的修改
wsgi.py中的
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘your_project.settings’)
改为
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘your_project.settings.set_base’)

6、修改set_dev.py、set_test.py、set_prod.py三个文件:
导入set_base:from .set_base import *
7、分别在set_dev.py、set_test.py、set_prod.py三个文件中添加不同环境需要的变量,例如set_dev.py文件中的mysql数据库的配置
# mysql数据库配置
MYSQL = {
‘HOST’:‘XXX’,
‘PORT’:‘3306’,
‘USER’: ‘xxx’,
‘PASSWORD’:‘123456’,
}

8、migrate环境
python your_project/manage.py migrate --settings=your_project.settings.set_dev(根据不同环境进行migrate)
9、启动环境
python your_project/manage.py runserver 0.0.0.0:8000 --settings=your_project.settings.set_dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值