本人了解到两种两种方式,可以让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(基础、开发、测试、生产)四个文件
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’)
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