Apa perbedaan antara `dari pengaturan impor django.conf` dan` pengaturan impor` dalam proyek Django


92

Saya membaca bahwa kebanyakan orang melakukannya from django.conf import settingstetapi saya tidak memahami perbedaannya dengan hanya melakukan import settingsdalam file proyek django. Adakah yang bisa menjelaskan perbedaannya?


Pengaturan django.conf adalah pengaturan default django atau "global" yang dapat Anda timpa dengan pengaturan berbasis proyek Anda sendiri.
Jingo

7
JANGAN PERNAH menggunakan formulir kedua. Yang pertama adalah satu-satunya yang benar.
bruno desthuilliers

2
Tetapi mengapa tidak pernah menggunakan yang kedua?
tzenderman

1

Jawaban:


111

import settingsakan mengimpor modul python pertama bernama settings.pyditemukan di sys.path, biasanya (dalam pengaturan django default). Ini memungkinkan akses hanya ke file pengaturan yang ditentukan situs Anda, yang menimpa pengaturan default django ( django.conf.global_settings).

Jadi, jika Anda mencoba mengakses pengaturan django yang valid tidak ditentukan dalam file pengaturan Anda, Anda akan mendapatkan kesalahan.

django.conf.settingsbukanlah sebuah file tetapi sebuah kelas yang membuat abstraksi dari konsep, pengaturan default dan pengaturan khusus situs Anda. Django juga melakukan pemeriksaan lain saat anda menggunakan from django.conf import settings.

Anda juga dapat menemukannya di dokumen django .

Semoga ini membantu.


5
import settingsakan mengimpor modul python pertama bernama settings.pyditemukan di sys.path. Ini mungkin bukan "file pengaturan yang ditentukan situs", yang dicari di variabel lingkungan "DJANGO_SETTINGS_MODULE" dan dapat berupa sembarang paket atau modul python.
bruno desthuilliers

@brunodesthuilliers terima kasih. Saya memperbarui jawaban saya dengan memperhatikan koreksi Anda.
juliocesar

22

from django.conf import settings adalah pilihan yang lebih baik.

Saya menggunakan file pengaturan yang berbeda untuk proyek django yang sama (satu untuk "live", satu untuk "dev"), yang pertama akan memilih yang sedang dijalankan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.