Django - різниця між налаштуваннями імпорту django.conf.і налаштуваннями імпорту


99

У чому полягає основна відмінність наступних заяв про імпорт у програмі Django?

import settings

і

from django.conf import settings

1
+1, тому що це дуже цікаві питання для того, хто є новим у розвитку Джанго.

Відповіді:


134
import settings

Імпортує модуль налаштувань (.py) вашого проекту Django (якщо ви, звичайно, пишете цей код із пакету "root" програми)

from django.conf import settings

Імпортує об'єкт налаштувань із пакету django.conf (надані файли Django). Це важливо , адже

[..] зауважте, що ваш код не повинен імпортуватись ні з глобальної_настройки, ні з вашого власного файлу налаштувань. django.conf.settings резюмує поняття налаштувань за замовчуванням та налаштування для певного сайту; він представляє єдиний інтерфейс. Він також роз’єднує код, який використовує параметри, з місця розташування ваших налаштувань.

ОНОВЛЕННЯ: якщо ви хочете визначити деякі власні налаштування, перегляньте цю частину документації


4
FYI, global_settings - це ще один модуль у пакеті django.conf. Як йдеться в документації, не використовуйте її.

3
Зауважте, що використання from django.conf import settingsкритично важливо, якщо ви хочете також мати можливість замінити налаштування під час тестування одиниць.
Йоріс

4
Також зауважте, що всі назви параметрів повинні бути великими літерами . Тобто, якщо ваш є вар my_varв настройках , то це буде не в змозі : from django.conf import settings... settings.my_var. Але якщо ви MY_VARйого назвете, це вдасться!
nik_m
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.