我是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.
任何人都对这个错误有所了解?
答案 0 :(得分:16)
您无法从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中运行你的代码。
答案 1 :(得分:15)
如果你想使用没有django shell的模板系统,你可以这样做:
from django.conf import settings
settings.configure()
然后你的代码
t = template.Template('My name is {{ name }}.')
答案 2 :(得分:1)
我也有同样的问题。
主要的一点是,在django第2册中,这段代码不允许用户放入从python.exe启动的Python IDLE(可能在Windows上的C:\ Program Files \ Python33中)。 / p>
相反,它只是展示了这段代码的样子。解决方案只需运行'cmd'并将目录更改为'mysite',然后运行
python manage.py shell
确保使用'mysite.settings.py'。
答案 3 :(得分:1)
当然,@ Sudipta的答案是正确的,但(仅为将来)的解释,你也可以访问&#34; Creating Template Objects
&#34; - &GT; &#34; A special Python prompt
&#34; Django book
答案 4 :(得分:0)
要解决此问题,您需要在python manage.py shell
而不是python
中运行它。
原因:嗯,Django的许多部分都依赖于设置,但是在知道要使用哪个设置文件之前,您无法使用它们。当您在python manage.py shell
上运行时,Django知道要使用哪个设置文件并为您完成工作。
答案 5 :(得分:0)
错误消息指出您需要设置DJANGO_SETTINGS_MODULE
变量。
运行export DJANGO_SETTINGS_MODULE=mysite.settings
对我有用。