Ошибка при использовании django.template
Я начинаю работать в django, и у меня появилось много ошибок при использовании модуля шаблонов из django.
Следующие действия из оболочки python:
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.
Доза у кого-нибудь есть идея об этой ошибке?
Ответы
Ответ 1
Вы не можете получить доступ и запустить проекты django из оболочки python. 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.
Ответ 2
Если вы хотите использовать систему шаблонов без оболочки django, вы можете сделать:
from django.conf import settings
settings.configure()
и после этого ваш код
t = template.Template('My name is {{ name }}.')
Ответ 3
У меня также была та же проблема.
Главное, что в книге django 2 этот кусок кода не предназначен для того, чтобы пользователи вставляли в Python IDLE, запущенный с вашего python.exe(предположительно в C:\Program Files\Python33 в Windows).
Скорее всего, это просто показывает, как будет выглядеть часть кода. Решение просто запускается "cmd" и меняет каталог на ваш "mysite" и запускает
оболочка python manage.py
которые обеспечивают использование "mysite.settings.py".
Ответ 4
Конечно, ответ @Sudipta работает правильно, но (только на будущее) для объяснения вы также можете посетить раздел < Creating Template Objects
"- > " A special Python prompt
"в Книга Django
Ответ 5
Чтобы устранить эту проблему, вам нужно запустить ее в python manage.py shell
вместо python
.
Причина: Ну, многие части Django полагаются на настройки, и вы не сможете их использовать, пока не узнаете, какой файл настроек использовать. Когда вы запустите его на python manage.py shell
, Django знает, какой файл настроек использовать и выполняет задание для вас.