Django - Différence entre l'importation django.conf.settings et les paramètres d'importation


99

Quelle est la différence fondamentale entre les instructions d'importation suivantes dans une application Django?

import settings

et

from django.conf import settings

1
+1 parce que c'est une question très intéressante pour qui est nouveau dans le développement de Django.

Réponses:


134
import settings

Importera le module de paramètres (.py) de votre projet Django (si vous écrivez ce code à partir du package "racine" de votre application, bien sûr)

from django.conf import settings

Importera l' objet de paramètres depuis le package django.conf (fichiers fournis par Django). Ceci est important , car

[..] notez que votre code ne doit pas être importé à partir de global_settings ou de votre propre fichier de paramètres. django.conf.settings résume les concepts de paramètres par défaut et de paramètres spécifiques au site; il présente une interface unique. Il dissocie également le code qui utilise les paramètres de l'emplacement de vos paramètres.

MISE À JOUR: si vous souhaitez définir vos propres paramètres, consultez cette partie de la documentation


4
Pour info, global_settings est un autre module à l'intérieur du package django.conf. Comme le dit la documentation, ne l'utilisez pas.

3
Notez que l'utilisation from django.conf import settingsest essentielle si vous souhaitez également pouvoir écraser les paramètres pendant les tests unitaires.
Joris

4
Notez également que tous les noms de paramètres doivent être en majuscules . C'est, si votre un var my_vardans vos paramètres alors ce échouera: from django.conf import settings... settings.my_var. Mais si vous le nommez, MY_VARil réussira!
nik_m
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.