ฉันอ่านว่าคนส่วนใหญ่ทำfrom django.conf import settingsแต่ฉันไม่เข้าใจความแตกต่างเพียงแค่ทำimport settingsในไฟล์โครงการ django ใครสามารถอธิบายความแตกต่าง?
ฉันอ่านว่าคนส่วนใหญ่ทำfrom django.conf import settingsแต่ฉันไม่เข้าใจความแตกต่างเพียงแค่ทำimport settingsในไฟล์โครงการ django ใครสามารถอธิบายความแตกต่าง?
คำตอบ:
import settingsจะนำเข้าโมดูล python แรกที่มีชื่อsettings.pyพบsys.pathโดยปกติ (ในการตั้งค่า django เริ่มต้น) อนุญาตให้เข้าถึงเฉพาะไฟล์การตั้งค่าที่ไซต์ของคุณกำหนดซึ่งจะเขียนทับการตั้งค่าเริ่มต้นของ django ( django.conf.global_settings)
ดังนั้นหากคุณพยายามเข้าถึงการตั้งค่า django ที่ถูกต้องซึ่งไม่ได้ระบุไว้ในไฟล์การตั้งค่าของคุณคุณจะได้รับข้อผิดพลาด
django.conf.settingsไม่ใช่ไฟล์ แต่เป็นคลาสที่สร้างนามธรรมของแนวคิดการตั้งค่าเริ่มต้นและการตั้งค่าเฉพาะไซต์ของคุณ Django ยังไม่ตรวจสอบอื่น ๆ from django.conf import settingsเมื่อคุณใช้
นอกจากนี้คุณยังสามารถหาได้ในเอกสาร Django
หวังว่านี่จะช่วยได้
import settingsจะนำเข้าโมดูล python แรกที่settings.pyพบในsys.path. นี่อาจไม่ใช่ "ไฟล์การตั้งค่าที่กำหนดโดยไซต์" ซึ่งค้นหาในตัวแปรสภาพแวดล้อม "DJANGO_SETTINGS_MODULE" และอาจเป็นเพียงแพ็กเกจหรือโมดูลหลามใดก็ได้
from django.conf import settings เป็นตัวเลือกที่ดีกว่า
ฉันใช้ไฟล์การตั้งค่าที่แตกต่างกันสำหรับโปรเจ็กต์ django เดียวกัน (ไฟล์หนึ่งสำหรับ "live" หนึ่งไฟล์สำหรับ "dev") ไฟล์แรกจะเลือกไฟล์ที่กำลังดำเนินการ