21

我是 django 的初学者,在使用 django 的模板模块时遇到了很多错误。以下从 python shell 工作:

from django import template
t = template.Template('My name is {{ name }}.')

当我使用此代码时,我收到以下错误:

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

有人知道这个错误吗?

4

6 回答 6

17

您无法从 python shell 访问和运行 django 项目。Django 不知道你想从事什么项目。

您必须执行以下操作之一:

1. python manage.py shell
2. Set DJANGO_SETTINGS_MODULE environment variable in your OS to mysite.settings
3. Use setup_environ in the python interpreter:
   from django.core.management import setup_environ
   from mysite import settings
   setup_environ(settings)

第一个是最简单也是最好的方法。在 django shell 中运行您的代码。

于 2013-08-06T13:21:43.953 回答
15

如果你想在没有 django shell 的情况下使用模板系统,你可以这样做:

from django.conf import settings
settings.configure()

然后你的代码

t = template.Template('My name is {{ name }}.')
于 2014-07-26T15:58:31.143 回答
1

我也有同样的问题。

要点是,在 django book 2 中,这段代码不应该让用户放入从您的 python.exe 启动的 Python IDLE 中(大概在 Windows 上的 C:\Program Files\Python33 中)。

相反,它只是展示了这段代码的外观。解决方案是简单地运行'cmd'并将目录更改为你的'mysite',然后运行

python manage.py 外壳

确保使用“mysite.settings.py”。

于 2013-12-20T04:43:00.040 回答
1

当然@Sudipta 的答案可以正常工作,但(只是为了将来)为了解释,您也可以访问Django bookCreating Template Objects中的“ ”->“ A special Python prompt”部分

于 2016-01-25T06:06:12.610 回答
0

要解决此问题,您需要运行它python manage.py shell而不仅仅是python.

原因:嗯,Django 的许多部分都依赖于设置,在它知道要使用哪个设置文件之前,您将无法使用它们。当您在 上运行它时python manage.py shell,Django 知道要使用哪个设置文件并为您完成这项工作。

于 2016-12-19T03:12:06.933 回答
0

错误消息指出您需要设置DJANGO_SETTINGS_MODULE变量。跑步export DJANGO_SETTINGS_MODULE=mysite.settings,为我工作。

于 2019-01-02T10:28:47.753 回答