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

Django是否可以配置多個(gè)settings文件

本篇文章給大家分享的是有關(guān)Django是否可以配置多個(gè)settings文件,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)公司致力于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇成都創(chuàng)新互聯(lián)公司,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

我們僅僅處理一個(gè)單一的設(shè)置文件 settings.py文件由django-admin.py startproject命令生成。但是當(dāng)你準(zhǔn)備要進(jìn)行配置的時(shí)候,你將發(fā)現(xiàn)你需要多個(gè)配置文件以使你的開發(fā)環(huán)境和產(chǎn)品環(huán)境相獨(dú)立。 比如,你可能不想每次在本地機(jī)器上測試代碼改變的時(shí)候?qū)EBUG從False 改為True。Django通過使用多個(gè)配置文件而使得這種情況很容易得到避免。

如果你想把你的配置文件按照產(chǎn)品設(shè)置和開發(fā)設(shè)置組織起來,你可以通過下面三種方法的其中一種達(dá)到這個(gè)目的。

設(shè)置成兩個(gè)全面的,彼此獨(dú)立的配置文件

設(shè)置一個(gè)基本的配置文件(比如,為了開發(fā))和第二個(gè)(為了產(chǎn)品)配置文件,第二個(gè)配置文件僅僅從基本的那個(gè)配置文件導(dǎo)入配置,并對需要定義的進(jìn)行復(fù)寫.

使用一個(gè)單獨(dú)的配置文件,此配置文件包含一個(gè)Python的邏輯判斷根據(jù)上下文環(huán)境改變設(shè)置。

我們將會在依次解釋這幾種方式

首先,最基本的方法是定義兩個(gè)單獨(dú)的配置文件。 如果你是跟隨之前的例子做下來的,那么你已經(jīng)有了一個(gè)settings.py了,現(xiàn)在你只需要將它復(fù)制一份并命名為settings_production.py(文件名可以按照你自己的喜好定義),在這個(gè)新文件中改變DEBUG等設(shè)置。

第二種方法比較類似,但是減少了許多冗余。 作為使用兩個(gè)內(nèi)容大部分相同的配置文件的替代方式,你可以使用一個(gè)文件為基本文件,另外一個(gè)文件從基本文件中導(dǎo)入相關(guān)設(shè)定。 例如

# settings.py
 
DEBUG = True
TEMPLATE_DEBUG = DEBUG
 
DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_NAME = 'devdb'
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_PORT = ''
 
# ...
 
# settings_production.py
 
from settings import *
 
DEBUG = TEMPLATE_DEBUG = False
DATABASE_NAME = 'production'
DATABASE_USER = 'app'
DATABASE_PASSWORD = 'letmein'

此處,settings_production.py 從settings.py 導(dǎo)入所有的設(shè)定,僅僅只是重新定義了產(chǎn)品模式下需要特殊處理的設(shè)置。 在這個(gè)案例中,DEBUG 被設(shè)置為False,但是我們已經(jīng)對產(chǎn)品模式設(shè)置了不同的數(shù)據(jù)庫訪問參數(shù)。 (后者將向你演示你可以重新定義 任何 設(shè)置,并不只是象 DEBUG 這樣的基本設(shè)置。)

最終,最精簡的達(dá)到兩個(gè)配置環(huán)境設(shè)定的方案是使用一個(gè)配置文件,在此配置文件中根據(jù)不同的環(huán)境進(jìn)行設(shè)置。 一個(gè)達(dá)到這個(gè)目的的方法是檢查當(dāng)前的主機(jī)名。 例如:

# settings.py
 
import socket
 
if socket.gethostname() == 'my-laptop':
  DEBUG = TEMPLATE_DEBUG = True
else:
  DEBUG = TEMPLATE_DEBUG = False
 
# ...

在這里,我們從python標(biāo)準(zhǔn)庫導(dǎo)入了socket 模塊,使用它來檢查當(dāng)前系統(tǒng)的主機(jī)名。 我們可以通過檢查主機(jī)名來確認(rèn)代碼是否運(yùn)行在產(chǎn)品服務(wù)器上。

一個(gè)關(guān)鍵是配置文件僅僅是包含python代碼的文件。你可以從其他文件導(dǎo)入這些python代碼,可以通過這些代碼執(zhí)行任意的邏輯判斷等操作。 如果你打算按照這種方案走下去,請確定這些配置文件中的代碼是足夠安全(防彈)的。 如果這個(gè)配置文件拋出任何的異常,Django都有可能會發(fā)生很嚴(yán)重的崩潰。

重命名settings.py

隨便將你的settings.py重命名為settings_dev.py或settings/dev.py或foobar.py,Django 并不在乎你的配置文件取什么名字,只要你告訴它你使用的哪個(gè)配置文件就可以了。

但是如果你真的重命名了由django-admin.py startproject 命令創(chuàng)建的settings.py文件,你會發(fā)現(xiàn)manage.py會給出一個(gè)錯(cuò)誤信息說找不到配置文件。 那是由于它嘗試從這個(gè)文件中導(dǎo)入一個(gè)叫做settings的模塊,你可以通過修改manage.py 文件,將 import settings 語句改為導(dǎo)入你自己的模塊,或者使用django-admin.py而不是使用manage.py,在后一種方式中你需要設(shè)置 DJANGO_SETTINGS_MODULE 環(huán)境變量為你的配置文件所在的python 路徑.(比如'mysite.settings')。

DJANGO_SETTINGS_MODULE

通過這種方式的代碼改變后,本章的下一部分將集中在對具體環(huán)境(比如Apache)的發(fā)布所需要的指令上。 這些指令針對每一種環(huán)境都不同,但是有一件事情是相同的。 在每一種環(huán)境中,你都需要告訴Web服務(wù)器你的DJANGO_SETTINGS_MODULE是什么,這是你的Django應(yīng)用程序的進(jìn)入點(diǎn)。 DJANGO_SETTINGS_MODULE指向你的配置文件,在你的配置文件中指向你的ROOT_URLCONF,在ROOT_URLCONF中指向了你的視圖以及其他的部分。

DJANGO_SETTINGS_MODULE是你的配置文件的python的路徑 比如,假設(shè)mysite是在你的Python路徑中,DJANGO_SETTINGS_MODULE對于我們正在進(jìn)行的例子就是'mysite.settings'。

以上就是Django是否可以配置多個(gè)settings文件,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:Django是否可以配置多個(gè)settings文件
文章鏈接:http://jinyejixie.com/article12/gdpcgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、App開發(fā)、建站公司移動(dòng)網(wǎng)站建設(shè)、定制網(wǎng)站、企業(yè)網(wǎng)站制作

廣告

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

成都做網(wǎng)站
渑池县| 龙州县| 曲周县| 四平市| 平谷区| 鄂伦春自治旗| 江达县| 罗定市| 玛多县| 富民县| 望谟县| 梅州市| 明水县| 紫阳县| 马龙县| 姜堰市| 嘉黎县| 五河县| 夹江县| 龙游县| 洪江市| 门头沟区| 崇阳县| 黔东| 昆山市| 上犹县| 洞口县| 岳阳县| 汉源县| 东方市| 吉首市| 简阳市| 华容县| 郓城县| 星子县| 太和县| 牙克石市| 喀喇沁旗| 达拉特旗| 日喀则市| 峨眉山市|