Django 項目中,我們默認的配置是都在 settings.py 文件里面的,但是實際本地調試和線上應該是需要兩個環境的,我們現在來拆分下配置。將配置拆分開來。
一、創建配置目錄
我們在項目的跟路徑下創建一個config 目錄
二、創建基礎配置文件
在config 配置下 創建 base.py 文件,然后將原來 settings.py 文件內容拷貝過來。
三、創建各個環境的配置
注意我是把一些配置提取出來了,如果我們在 環境配置中加了的配置,在 base 中就不需要加了
創建 dev.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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 原有的配置替換成下面的內容。
1
2
3
4
5
6
7
8
9
10
11
|
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
五、程序使用
1
2
|
from django.conf import settings settings.ALIYUN_SECRETID # 引用 |
六、目錄結構
到此這篇關于Django 項目配置拆分獨立的實現的文章就介紹到這了,更多相關Django 項目配置拆分獨立 內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/operationhome/p/15574691.html