2013-09-28 3 views
0

Я подключаю базу данных MySQL к проекту Django. В файле settings.py я предписывают следующее:Django + MySQL + Ubuntu = Ошибка

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'mydb', 
     'USER': 'root', 
     'PASSWORD': '1', 
    } 
} 

Далее, чтобы проверить конфигурацию, я выполнить следующие команды:

>>> from django.db import connection 
>>> cursor = connection.cursor() 

Консоль дает мне следующее:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 11, in <module> 
    if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES: 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 53, in __getattr__ 
    self._setup(name) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 46, in _setup 
    % (desc, ENVIRONMENT_VARIABLE)) 
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

Помогите мне, пожалуйста. Недавно я начал изучать Django.

+0

Не удается найти файл настроек. Какова структура каталогов и откуда вы выполняете команду? –

ответ

1

Причина, по которой вы получаете сообщение об ошибке, заключается в том, что вам необходимо загрузить настройки для django, чтобы использовать конфигурацию, модели и инструменты django. django предоставляет команду управления shell, которая будет загружать приглашение Python, настроенное для django.

Запустите python manage.py shell из каталога вашего проекта (а не вашего приложения), и тогда вы не получите эту ошибку (вы получите другую).

Как вы изучаете django, не используйте MySQL в качестве базы данных. Используйте встроенную базу данных sqlite, как suggested in the tutorial, чтобы получить скорость на django.

0

Если вы посмотрите на конфигурацию базы данных:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'mydb', 
     'USER': 'root', 
     'PASSWORD': '1', 
    } 
} 

Вы не установили HOST и PORT. Как ваши ошибочные состояния (. Не имеющие все необходимые ключи и соответствующие им значения приведет Джанго вызовет ошибку В этом случае HOST и PORT требования):

django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

Если вы разрабатываете на локальный, то ваш HOST должно быть '', а ваш PORT должен быть 3306, который по умолчанию используется для MySQL (если вы не изменили его во время установки).

Если вы новичок в django, попробуйте использовать SQLite, так как это проще всего начать с. Но если вы решили использовать SQLite, вам нужно будет ввести путь в NAME. Не беспокойтесь, если вы не создали файл SQLite .db. Если ни один из них не выйдет, он создаст один для вас.

Смежные вопросы