Django 設(shè)置多環(huán)境配置文件載入問題
在上篇文章給大家介紹過Django 多環(huán)境配置詳解,感興趣的朋友可以點擊查閱,今天繼續(xù)給大家介紹django 多環(huán)境配置的相關(guān)內(nèi)容,本文重點給大家介紹Django 設(shè)置多環(huán)境配置文件載入的相關(guān)知識,一起看看吧。
起步
通常,針對不同的開發(fā)環(huán)境,需要不同的配置保證程序可運行且不干擾。單個 settings.py 文件就很難滿足需求,需要將他拆分為多個文件,根據(jù)特定環(huán)境載入不同的配置文件。一種簡單的劃分就是分為 4 個文件:
__init__.py base.py dev.py prod.py
基本結(jié)構(gòu)
一個初始的 Django 項目目錄結(jié)構(gòu)如下:
mysite/ |-- mysite/ | |-- __init__.py | |-- settings.py | |-- urls.py | +-- wsgi.py +-- manage.py
這時候要做的就是創(chuàng)建一個名為 settings 的文件夾,將 settings.py 重命名為 base.py 并放入文件夾內(nèi):
mysite/ |-- mysite/ | |-- __init__.py | |-- settings/ <-- 新建的文件夾 | | |-- __init__.py <-- | | |-- base.py <-- 舊的 settings.py | | |-- cli.py <-- 根據(jù)不同環(huán)境而新增的配置文件 | | |-- dev.py | | +-- prod.py | |-- urls.py | +-- wsgi.py +-- manage.py
base.py 顧名思義,它將成為所有環(huán)境的通用配置,擴(kuò)展的配置文件需要將 base.py 導(dǎo)入:
# settings/dev.py from .base import * DEBUG = True INSTALLED_APPS += [ 'debug_toolbar', ] ...
讓配置文件生效
要使配置文件生效,需要讓 Django 知道我們要使用哪個配置文件,一種方式就是在命令行中傳遞這個 --settings=mysite.settings.dev 參數(shù),如:
python manage.py runserver --settings=mysite.settings.dev python manage.py runserver --settings=mysite.settings.prod python manage.py migrate --settings=mysite.settings.prod
如果不希望每次指令都傳遞 --settings 參數(shù),也可以通過修改 manage.py 文件實現(xiàn)使用不同的配置文件:
# manage.py import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.dev") # 修改這個位置 ...
在服務(wù)器上指定設(shè)置
生產(chǎn)環(huán)境下一般不會使用 runserver 指令運行,大多是通過 uwsgi 方式運行,修改 mysite/wsgi.py :
import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.prod") application = get_wsgi_application()
通過修改 DJANGO_SETTINGS_MODULE
環(huán)境變量指向所需的配置文件。
下面看下django settings多環(huán)境配置
通常我們會把本地、線上的配置拆分,django不同環(huán)境的配置可如下:
1.在settings.py同級目錄添加settings文件夾
2.把settings.py移到settings文件夾內(nèi),并重命名為base.py
3.添加dev.py, prod.py到settings文件夾
4.base.py中的根目錄,要改成:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__file__, os.pardir))))
說明:
1)一些公共配置,放在base.py中。其他因環(huán)境而不同的配置,加到local.py/prod.py中
2)dev.py/prod.py,需要把base.py中的配置導(dǎo)入
from .base import * DEBUG = True #其他配置
3)啟動服務(wù)時,用--setings指定配置
python manage.py runserver --settings=back-server.settings.dev
正式環(huán)境用uwsgi部署,則配置環(huán)境變量:DJANGO_SETTINGS_MODULE=back-server.settings.prod
總結(jié)
到此這篇關(guān)于Django 設(shè)置多環(huán)境配置文件載入的文章就介紹到這了,更多相關(guān)django 配置文件載入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python descriptor(描述符)的實現(xiàn)
這篇文章主要介紹了Python descriptor(描述符)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11詳解Python中表達(dá)式i += x與i = i + x是否等價
這篇文章主要介紹了關(guān)于Python中表達(dá)式i += x與i = i + x是否等價的相關(guān)資料,文中通過示例代碼介紹的很詳細(xì),相信對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。2017-02-02在Python中利用Pandas庫處理大數(shù)據(jù)的簡單介紹
這篇文章簡單介紹了在Python中利用Pandas處理大數(shù)據(jù)的過程,Pandas庫的使用能夠很好地展現(xiàn)數(shù)據(jù)結(jié)構(gòu),是近來Python項目中經(jīng)常被使用使用的熱門技術(shù),需要的朋友可以參考下2015-04-04PyTorch 中的 torch.utils.data 解析(推薦)
這篇文章主要介紹了PyTorch?torch.utils.data.Dataset概述案例詳解,主要介紹對?torch.utils.data.Dataset?的理解,需要的朋友可以參考下2023-02-02pandas DataFrame 警告(SettingWithCopyWarning)的解決
這篇文章主要介紹了pandas DataFrame 警告(SettingWithCopyWarning)的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07