1. 程式人生 > >Django的配置詳解

Django的配置詳解

–總結Django中使用到的配置,以及在什麼情況下進行什麼樣的配置


基礎認識

Django 的設定檔案包含你安裝的Django 的所有配置,設定檔案只是一個Python 模組,帶有模組級別的變數。

比如下面圖片展示的設定:

在這裡插入圖片描述

注意,如果專案在上線的時候,是不能將DEBUG設定為True,也就是說,你就必須將Debug=False,如果你設定DEBUG 為False,那麼你應該正確設定ALLOWED_HOSTS 的值,用來進行訪問。

配置檔案是一個python檔案,所以適用於下面的條件:

  • python語法動態設定
my_setting = [str(i) for i in range(9)]
  • 不允許出現python語法錯誤
  • 可以通過導包的方式獲取相關的引數

指定配置檔案

在使用Django的時候,需要通過環境變數DJANGO_SETTINGS_MODULE 來告知Django使用那個配置:
在這裡插入圖片描述

注意:DJANGO_SETTINGS_MODULE 的值應該使用Python 路徑的語法,例如django_test.settings。 注意,設定模組應該在Python 的匯入查詢路徑 中。

Django的預設配置

Django 的設定檔案不需要定義所有的設定。 每個設定都有一個合理的預設值。 這些預設值位於django/conf/global_settings.py 模組中;

當然了,我們可以通過python manage.py diffsettings 這條命令來獲取當前我們的配置檔案中,哪些和預設的不同

在其他python檔案中使用settings

在Django 應用中,可以通過匯入django.conf.settings 物件來使用配置檔案中的相關引數,比如:

from django.conf import settings

if settings.DEBUG:
    # Do something

但是,需要注意的是,django.conf.settings 不是一個模組 ,它是一個物件。 所以不可以匯入每個單獨的設定:

from django.conf.settings import DEBUG  # 這是錯誤的

還需要注意的是,你的程式碼不應該 從global_settings 或你自己的配置檔案中匯入。 django.conf.settings摘錄了預設配置和站點特定設定的概念;它提供了一個單一的介面,就是針對本django框架中的所有配置的;通俗來說,你想要獲取配置檔案的資料,就用django.conf.settings 這個方式即可。

“獨立”Django使用需要呼叫django.setup()

這個’獨立‘的意思就是,執行一個python指令碼執行,但是這個指令碼是需要依賴django中的一些配置,那麼就需要用到django.setup()

比如:
在這裡插入圖片描述

注意,只有在程式碼是真正獨立的,才需要呼叫django.setup()。 當Web伺服器呼叫,或通過django-admin呼叫,Django將會自動處理此相關配置載入的。

django.setup() 只能進行呼叫一次,如果不能保證只能被呼叫一次,那麼需要在當前檔案下這樣寫:

if __name__ == '__main__':
	import django
	django.setup()