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()