2014-03-05 567 views
6

假設我的Django項目有一些全局設置,存儲在文本文件中以便於編輯。我想加載設置,然後存儲這些變量,以便可以從我的任何視圖函數訪問它們。但是,我已經讀過,Django中的全局變量是不鼓勵的。那麼,我該怎麼做呢?我知道如何將這些變量存儲在一個數據庫中,但這似乎矯枉過正只是爲了存儲一些簡單的變量。Django:全局設置變量

回答

4

只需將變量存儲在settings.py中,這是存儲項目特定設置的最佳方法。然後,你可以隨時通過導入django.conf.settings訪問它們:

from django.conf import settings 

print settings.MY_SETTING 

希望有所幫助。

+0

我有一個關於Django視圖中的全局變量的問題。可以請提供您的意見? http://stackoverflow.com/questions/39490843/django-app-level-variables –

7

正如alecxe已經指出的那樣,您可以使用settings系統。這是設置必須在項目範圍內使用的值的習慣方式。如果您閱讀我已鏈接的文檔,您會發現它們很早就在該頁面上涵蓋了如何設置自己的設置。

當你使用Django的設置系統時,你不能做的一件事就是參考模塊頂層的設置。例如,如果你有,這是否一個觀點:

from django.conf import settings 

FOO = settings.FOO 

(或者alecxe是print聲明)。這將防止重寫值。文檔here查看詳細信息。我記得在測試中遇到了問題,因爲我的一些測試試圖覆蓋默認值,並且失敗了。

上面提到的設置系統應該用於在啓動時設置的值,而不是在之後改變。如果您想記錄網站管理員在運行時可以更改的設置,則應該使用某種數據庫。

+0

我有一個關於Django視圖中的全局變量的問題。可以請提供您的意見? http://stackoverflow.com/questions/39490843/django-app-level-variables –