成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Django怎么設(shè)置多環(huán)境配置文件載入-創(chuàng)新互聯(lián)

這篇文章主要介紹了Django怎么設(shè)置多環(huán)境配置文件載入,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向近千家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。

起步

通常,針對(duì)不同的開(kāi)發(fā)環(huán)境,需要不同的配置保證程序可運(yùn)行且不干擾。單個(gè) settings.py 文件就很難滿足需求,需要將他拆分為多個(gè)文件,根據(jù)特定環(huán)境載入不同的配置文件。一種簡(jiǎn)單的劃分就是分為 4 個(gè)文件:

__init__.py
base.py
dev.py
prod.py

基本結(jié)構(gòu)

一個(gè)初始的 Django 項(xiàng)目目錄結(jié)構(gòu)如下:

mysite/
 |-- mysite/
 | |-- __init__.py
 | |-- settings.py
 | |-- urls.py
 | +-- wsgi.py
 +-- manage.py

這時(shí)候要做的就是創(chuàng)建一個(gè)名為 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 知道我們要使用哪個(gè)配置文件,一種方式就是在命令行中傳遞這個(gè) --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ù),也可以通過(guò)修改 manage.py 文件實(shí)現(xiàn)使用不同的配置文件:

# manage.py
import os
import sys
if __name__ == "__main__":
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.dev") # 修改這個(gè)位置
 ...

在服務(wù)器上指定設(shè)置

生產(chǎn)環(huán)境下一般不會(huì)使用 runserver 指令運(yùn)行,大多是通過(guò) uwsgi 方式運(yùn)行,修改 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()

通過(guò)修改 DJANGO_SETTINGS_MODULE 環(huán)境變量指向所需的配置文件。

下面看下django settings多環(huán)境配置

通常我們會(huì)把本地、線上的配置拆分,django不同環(huán)境的配置可如下:

1.在settings.py同級(jí)目錄添加settings文件夾

2.把settings.py移到settings文件夾內(nèi),并重命名為base.py

3.添加dev.py, prod.py到settings文件夾

Django怎么設(shè)置多環(huán)境配置文件載入

4.base.py中的根目錄,要改成:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__file__, os.pardir))))

說(shuō)明:

1)一些公共配置,放在base.py中。其他因環(huán)境而不同的配置,加到local.py/prod.py中

2)dev.py/prod.py,需要把base.py中的配置導(dǎo)入

from .base import *
DEBUG = True
#其他配置

3)啟動(dòng)服務(wù)時(shí),用--setings指定配置

python manage.py runserver --settings=back-server.settings.dev

正式環(huán)境用uwsgi部署,則配置環(huán)境變量:DJANGO_SETTINGS_MODULE=back-server.settings.prod

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Django怎么設(shè)置多環(huán)境配置文件載入”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)站名稱:Django怎么設(shè)置多環(huán)境配置文件載入-創(chuàng)新互聯(lián)
文章源于:http://jinyejixie.com/article36/isesg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈、Google、面包屑導(dǎo)航、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
微博| 泽普县| 五莲县| 牡丹江市| 滦南县| 望谟县| 林甸县| 淮阳县| 内乡县| 甘孜县| 榆中县| 榆中县| 钟山县| 舟山市| 泊头市| 遂宁市| 临沂市| 巴楚县| 平潭县| 英吉沙县| 来凤县| 武川县| 武邑县| 惠水县| 连江县| 江达县| 滕州市| 峨眉山市| 山西省| 临桂县| 石屏县| 高碑店市| 祁阳县| 万州区| 喀什市| 阿拉善左旗| 呼伦贝尔市| 乐清市| 汝南县| 吉安县| 介休市|