ฉันอ่านว่าคนส่วนใหญ่ทำ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") ไฟล์แรกจะเลือกไฟล์ที่กำลังดำเนินการ