我正在尝试导入from django.http import HttpResponse
,但我收到以下异常:
ImportError: Settings cannot be imported, because environment variable
DJANGO_SETTINGS_MODULE is undefined.
有人可以帮我吗?
提前致谢
答案 0 :(得分:4)
如果你想从(比如说)Python脚本中使用Django,你必须像你说的那样设置设置模块。
另一种做法如下:
#!/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()
答案 1 :(得分:2)
Django使用名为DJANGO_SETTINGS_MODULE
的环境变量来确定全局配置文件的位置。 DJANGO_SETTINGS_MODULE
必须引用包含配置设置的Python模块,并且此模块必须位于Python路径上。如果您出于某种原因不想使用全局配置模块,则必须在使用任何使用设置的Django代码之前从settings.configure
调用django.conf
:
from django.conf import settings
settings.configure(DEBUG=True, TEMPLATE_DEBUG=True,
TEMPLATE_DIRS=('/home/web-apps/myapp',
'/home/web-apps/base'))
可以找到更多信息in the Django docs。