Je souhaite connecter la base de données MySQL à mon projet Django, mais une erreur est générée:
"Django.core.exceptions.ImproperlyConfigured: Paramètre demandé USE_I18N, mais aucun paramètre n'est configuré. Vous devez définir la variable d'environnement Django_SETTINGS_MODULE ou appeler Settings.configure () avant d'accéder aux paramètres."
Trace:
(myenv) LIBINGLADWINs-MacBook-Air:libinrenold$ Django-admin dbshell
Traceback (most recent call last):
File "/Users/libinrenold/Desktop/djangoworks/myenv/bin/Django-admin", line 11, in <module>
sys.exit(execute_from_command_line())
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/__init__.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/base.py", line 322, in execute
saved_locale = translation.get_language()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/utils/translation/__init__.py", line 195, in get_language
return _trans.get_language()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/utils/translation/__init__.py", line 59, in __getattr__
if settings.USE_I18N:
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/conf/__init__.py", line 56, in __getattr__
self._setup(name)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/conf/__init__.py", line 39, in _setup
% (desc, ENVIRONMENT_VARIABLE))
Django.core.exceptions.ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable Django_SETTINGS_MODULE or call settings.configure() before accessing settings.
settings.py .
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.mysql',
'NAME': 'test',
'USER': 'user',
'PASSWORD': 'root',
'Host':'',
'PORT': '',
}
}
Vous devez définir la variable pertinente pour indiquer l'emplacement de votre fichier settings.py
:
export Django_SETTINGS_MODULE=mysite.settings
C'est l'entrée docs pertinente:
Lorsque vous utilisez Django, vous devez lui indiquer les paramètres que vous utilisez . Pour ce faire, utilisez une variable d’environnement, Django_SETTINGS_MODULE.
La valeur de Django_SETTINGS_MODULE doit être dans la syntaxe du chemin d'accès Python, par exemple. mysite.settings. Notez que le module de configuration doit être sur le Chemin de recherche d'importation Python.
Si vous utilisez un virtualenv (pratique recommandée), vous pouvez coller la commande export
appropriée dans le fichier <path-to-virtualenv>/bin/activate
mettez ceci en haut de settings.py cela configurera Django pour vous
import os
os.environ.setdefault("Django_SETTINGS_MODULE", __file__)
import Django
django.setup()
Comme pour raratiru, vous avez besoin de la variable d’environnement Django_SETTINGS_MODULE
définie avec le chemin Pythonic relatif à votre fichier de paramètres.
OU utilisez votre commande Django-admin
avec le paramètre settings
:
Django-admin --settings=mysite.settings dbshell