एक Django परियोजना में `django.conf आयात सेटिंग्स से` और `import सेटिंग्स` के बीच अंतर क्या है


92

मैं पढ़ रहा हूँ कि ज्यादातर लोग करते हैं, from django.conf import settingsलेकिन मैं import settingsएक django परियोजना फ़ाइल में बस करने के लिए अंतर नहीं समझता । क्या कोई अंतर समझा सकता है?


django.conf सेटिंग्स django default या "Global" सेटिंग्स हैं, जिन्हें आप अपनी स्वयं की प्रोजेक्ट आधारित सेटिंग्स के साथ ओवरराइड कर सकते हैं।
जिंगो

7
कभी भी दूसरे रूप का उपयोग न करें। पहले वाला ही सही है।
ब्रूनो डेथिलियर्स

2
लेकिन कभी भी दूसरे का उपयोग क्यों न करें?
त्जेन्डरमैन

जवाबों:


111

import settingssettings.pyमें पाया गया पहला पायथन मॉड्यूल आयात करेगा sys.path, आमतौर पर (डिफ़ॉल्ट django सेटअप में)। यह केवल आपकी साइट परिभाषित सेटिंग्स फ़ाइल तक पहुंच की अनुमति देता है, जो django डिफ़ॉल्ट सेटिंग्स ( django.conf.global_settings) को अधिलेखित करता है ।

इसलिए, यदि आप एक मान्य django सेटिंग का उपयोग करने का प्रयास करते हैं जो आपकी सेटिंग फ़ाइल में निर्दिष्ट नहीं है तो आपको एक त्रुटि मिलेगी।

django.conf.settingsएक फाइल नहीं है, लेकिन एक अवधारणा, डिफ़ॉल्ट सेटिंग्स और आपकी साइट-विशिष्ट सेटिंग्स का एक अमूर्त वर्ग है। जब आप उपयोग करते हैं तो Django अन्य चेक भी करता है from django.conf import settings

आप इसे django डॉक्स में भी पा सकते हैं ।

उम्मीद है की यह मदद करेगा।


5
import settingssettings.pyमें पाया गया पहला पायथन मॉड्यूल आयात करेगा sys.path। यह "साइट परिभाषित सेटिंग्स फ़ाइल" नहीं हो सकती है, जिसे पर्यावरण चर "डीजेंगो_सेटिंग्स_मॉडल" में देखा जाता है और यह केवल किसी भी अजगर पैकेज या मॉड्यूल हो सकता है।
ब्रूनो डेथिलियर्स

@brunodesthuilliers आपका धन्यवाद। मैं आपके उत्तर को आपके सुधार से अवगत करा रहा हूं।
जूलियोसेर

22

from django.conf import settings बेहतर विकल्प है।

मैं एक ही django परियोजना ("लाइव" के लिए एक, "देव" के लिए एक) के लिए अलग-अलग सेटिंग्स फ़ाइलों का उपयोग करता हूं, पहले वाला एक निष्पादित किया जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.