Я пытаюсь импортировать from django.http import HttpResponse
, но я получаю следующее исключение:
ImportError: Settings cannot be imported, because environment variable
DJANGO_SETTINGS_MODULE is undefined.
Кто-либо мог помочь мне?
Заранее спасибо
Django использует переменную среды с именем DJANGO_SETTINGS_MODULE
, чтобы выяснить, где находится файл глобальной конфигурации. DJANGO_SETTINGS_MODULE
должен относиться к модулю Python, который содержит ваши параметры конфигурации, и этот модуль должен находиться на пути Python. Если вы по какой-либо причине не хотите использовать модуль глобальной конфигурации, вам необходимо вызвать settings.configure
из django.conf
перед использованием любого кода Django, который использует настройки:
from django.conf import settings
settings.configure(DEBUG=True, TEMPLATE_DEBUG=True,
TEMPLATE_DIRS=('/home/web-apps/myapp',
'/home/web-apps/base'))
Дополнительную информацию можно найти в документации Django .
Если вы хотите использовать Django из (скажем) скрипт Python, вы должны установить модуль настроек , как вы сказали.
Другой способ сделать следующее:
#!/usr/bin/python
from django.core.management import setup_environ
import os
import settings
os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings" # or just "settings" if it's on the same directory as settings.py
from mysite.myapp.models import * # import models, etc, only *after* setting up the settings module
setup_environ(settings)
# insert your code here, say saving an entry
c = MyClass()
c.text = "Hello!"
c.save()