Django - różnica między importem django.conf.settings a ustawieniami importu


99

Jaka jest podstawowa różnica między następującymi instrukcjami importu w aplikacji Django?

import settings

i

from django.conf import settings

1
+1, ponieważ jest to bardzo interesujące pytanie dla tego, kto jest nowy w rozwoju Django.

Odpowiedzi:


134
import settings

Zaimportuje moduł ustawień (.py) twojego projektu Django (jeśli piszesz ten kod z pakietu "root" aplikacji, oczywiście)

from django.conf import settings

Zaimportuje obiekt ustawień z pakietu django.conf (pliki dostarczone przez Django). To ważne , ponieważ

[..] zwróć uwagę, że Twój kod nie powinien być importowany ani z global_settings, ani z własnego pliku ustawień. django.conf.settings wyodrębnia pojęcia dotyczące ustawień domyślnych i ustawień specyficznych dla witryny; przedstawia pojedynczy interfejs. Oddziela również kod, który używa ustawień, od lokalizacji ustawień.

UPDATE: jeśli chcesz zdefiniować własne ustawienia, zajrzyj do tej części dokumentacji


4
FYI, global_settings to kolejny moduł w pakiecie django.conf. Jak mówi dokumentacja, nie używaj go.

3
Zauważ, że używanie from django.conf import settingsjest krytyczne, jeśli chcesz mieć możliwość nadpisywania ustawień również podczas testów jednostkowych.
Joris

4
Należy również pamiętać, że wszystkie nazwy ustawień powinny być pisane wielkimi literami . Oznacza to, że jeśli masz var my_varw ustawieniach wtedy to zawiedzie: from django.conf import settings... settings.my_var. Ale jeśli MY_VARto nazwiesz, odniesie sukces!
nik_m,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.