Django - ความแตกต่างระหว่างการนำเข้า django.conf.settings และการนำเข้าการตั้งค่า


100

อะไรคือความแตกต่างพื้นฐานระหว่างคำสั่งนำเข้าต่อไปนี้ในแอป Django

import settings

และ

from django.conf import settings

1
+1 เนื่องจากเป็นคำถามที่น่าสนใจมากสำหรับผู้ที่ยังใหม่กับการพัฒนา Django

คำตอบ:


135
import settings

จะนำเข้าโมดูลการตั้งค่า (.py) ของโครงการ Django ของคุณ (หากคุณเขียนโค้ดนี้จากแพ็คเกจ "root" ของแอปพลิเคชันของคุณแน่นอน)

from django.conf import settings

จะนำเข้าวัตถุการตั้งค่าจากแพ็คเกจ django.conf (ไฟล์ที่ให้มาของ Django) นี่เป็นสิ่งสำคัญเพราะ

[.. ] โปรดทราบว่าโค้ดของคุณไม่ควรนำเข้าจาก global_settings หรือไฟล์การตั้งค่าของคุณเอง django.conf.settings สรุปแนวคิดของการตั้งค่าเริ่มต้นและการตั้งค่าเฉพาะไซต์ นำเสนออินเทอร์เฟซเดียว นอกจากนี้ยังแยกรหัสที่ใช้การตั้งค่าจากตำแหน่งของการตั้งค่าของคุณ

UPDATE: หากคุณต้องการกำหนดการตั้งค่าของตัวเองโปรดดูส่วนนี้ของเอกสารประกอบ


4
FYI, global_settings เป็นโมดูลอื่นภายในแพ็คเกจ django.conf ตามที่เอกสารระบุห้ามใช้

3
โปรดทราบว่าการใช้from django.conf import settingsเป็นสิ่งสำคัญหากคุณต้องการให้สามารถเขียนทับการตั้งค่าระหว่างการทดสอบหน่วยได้เช่นกัน
Joris

4
โปรดทราบว่าชื่อการตั้งค่าทั้งหมดควรเป็นตัวพิมพ์ใหญ่ นั่นคือถ้าคุณมี var my_varในการตั้งค่าของคุณแล้วนี้จะล้มเหลว...from django.conf import settings settings.my_varแต่ถ้าคุณตั้งชื่อMY_VARมันจะสำเร็จ!
nik_m
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.