最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Django中同時使用多個配置文件的方法

 更新時間:2015年07月22日 10:19:01   投稿:goldensun  
這篇文章主要介紹了在Django中同時使用多個配置文件的方法,Django是豐富多彩的Python web框架中人氣最高的一個,需要的朋友可以參考下

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

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

  •     設置成兩個全面的,彼此獨立的配置文件
  •     設置一個基本的配置文件(比如,為了開發(fā))和第二個(為了產(chǎn)品)配置文件,第二個配置文件僅僅從基本的那個配置文件導入配置,并對需要定義的進行復寫.
  •     使用一個單獨的配置文件,此配置文件包含一個Python的邏輯判斷根據(jù)上下文環(huán)境改變設置。

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

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

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

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

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

# settings.py

import socket

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

# ...

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

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

重命名settings.py

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

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

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

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

相關(guān)文章

  • python實現(xiàn)解數(shù)獨程序代碼

    python實現(xiàn)解數(shù)獨程序代碼

    最近在帶孩子學習數(shù)獨,職業(yè)使然,就上網(wǎng)搜了下相關(guān)程序的解法,這里分享給大家,希望對大家學習python有所幫助
    2017-04-04
  • python在協(xié)程中增加任務實例操作

    python在協(xié)程中增加任務實例操作

    在本篇文章里小編給大家整理的是一篇關(guān)于python在協(xié)程中增加任務實例操作內(nèi)容,有興趣的朋友們可以學習下。
    2021-02-02
  • 如何運行帶參數(shù)的python腳本

    如何運行帶參數(shù)的python腳本

    這篇文章主要介紹了如何運行帶參數(shù)的python腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • python 爬取英雄聯(lián)盟皮膚并下載的示例

    python 爬取英雄聯(lián)盟皮膚并下載的示例

    這篇文章主要介紹了python 爬取英雄聯(lián)盟皮膚并下載的示例,幫助大家更好的理解和學習使用python 爬蟲,感興趣的朋友可以聊繼續(xù)
    2020-12-12
  • Python讀寫unicode文件的方法

    Python讀寫unicode文件的方法

    這篇文章主要介紹了Python讀寫unicode文件的方法,涉及Python針對文件的讀取及編碼操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python操作日期和時間的方法

    python操作日期和時間的方法

    經(jīng)常獲得了一個用戶提交的當前日期,我們需要以這個日期為依據(jù)返回它的前一天、后一天的日期或者轉(zhuǎn)換操作等。用Python可以非常簡單的解決這些關(guān)于日期計算的問題
    2014-03-03
  • Python常見數(shù)據(jù)類型轉(zhuǎn)換操作示例

    Python常見數(shù)據(jù)類型轉(zhuǎn)換操作示例

    這篇文章主要介紹了Python常見數(shù)據(jù)類型轉(zhuǎn)換操作,結(jié)合實例形式分析了Python針對列表、集合、元組、字典等數(shù)據(jù)類型轉(zhuǎn)換的相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • python實現(xiàn)批量注冊網(wǎng)站用戶的示例

    python實現(xiàn)批量注冊網(wǎng)站用戶的示例

    今天小編就為大家分享一篇python實現(xiàn)批量注冊網(wǎng)站用戶的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • PyQt5中QLCDNumber的實現(xiàn)

    PyQt5中QLCDNumber的實現(xiàn)

    本文主要介紹了PyQt5中QLCDNumber的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-04-04
  • python實現(xiàn)歸并排序算法

    python實現(xiàn)歸并排序算法

    這篇文章主要為大家詳細介紹了Python實現(xiàn)歸并排序算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11

最新評論

长兴县| 汉寿县| 两当县| 安阳县| 和政县| 黄骅市| 台安县| 井研县| 苍南县| 如皋市| 天峨县| 元氏县| 铁岭市| 高要市| 周口市| 武安市| 大方县| 盐城市| 石柱| 迁安市| 汶上县| 大埔县| 多伦县| 德安县| 原阳县| 新密市| 鹤壁市| 理塘县| 峨山| 大关县| 太白县| 徐闻县| 凤凰县| 盐边县| 汶上县| 宣汉县| 江山市| 博客| 淄博市| 玉环县| 吉安县|