2012-01-08 26 views
87

Django ऐप में निम्न आयात विवरणों के बीच मूल अंतर क्या है?Django - आयात django.conf.settings और आयात सेटिंग्स के बीच अंतर

import settings 

और

from django.conf import settings 
+1

+1 देख क्योंकि यह जो Django विकास के लिए नया है के लिए एक बहुत ही दिलचस्प सवाल है। – dgraziotin

उत्तर

117
import settings 

अपने Django परियोजना के आयात करेंगे सेटिंग्स (.py) मॉड्यूल (यदि आप निश्चित रूप से, आपके आवेदन की "रूट" पैकेज से इस कोड को लिख रहे हैं)

from django.conf import settings 

सेटिंग्स आयात करेंगे django.conf पैकेज (Django के समर्थक से वस्तु vided फाइलें)। This is important, क्योंकि

[..] ध्यान दें कि आपका कोड वैश्विक_सेटिंग या अपनी सेटिंग्स फ़ाइल से आयात नहीं करना चाहिए। django.conf.settings डिफ़ॉल्ट सेटिंग्स और साइट-विशिष्ट सेटिंग्स की अवधारणाओं को सारणीबद्ध करता है; यह एक एकल इंटरफ़ेस प्रस्तुत करता है। यह उस कोड को भी रद्द करता है जो आपकी सेटिंग्स के स्थान से सेटिंग्स का उपयोग करता है।

अद्यतन: यदि आप कुछ अपनी सेटिंग्स को परिभाषित करना चाहते, this part of the documentation

+3

एफवाईआई, global_settings django.conf पैकेज के अंदर एक और मॉड्यूल है। जैसा कि दस्तावेज कहता है, इसका उपयोग न करें। – dgraziotin

+3

ध्यान दें कि यदि आप यूनिट परीक्षण के दौरान सेटिंग्स को ओवरराइट करने में सक्षम होना चाहते हैं तो django.conf आयात सेटिंग्स ''' से '' 'का उपयोग करना महत्वपूर्ण है। – Joris

+3

यह भी ध्यान दें कि सभी सेटिंग्स नाम ** ऊपरी मामले ** होना चाहिए। यही है, अगर आपकी सेटिंग्स में एक var 'my_var' है तो यह असफल हो जाएगा: 'django.conf आयात सेटिंग्स' से ...' settings.my_var'। लेकिन अगर आप इसे 'MY_VAR' नाम देते हैं तो यह सफल होगा! –

संबंधित मुद्दे