导入django模块

时间:2010-08-08 10:03:59

标签: python django

我正在尝试导入from django.http import HttpResponse,但我收到以下异常:

ImportError: Settings cannot be imported, because environment variable
DJANGO_SETTINGS_MODULE is undefined.

有人可以帮我吗?

提前致谢

2 个答案:

答案 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