я следующий код в моем settins.py:GAE шаблоны не работает
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__),'html').replace("\\","/"),
)
и в обработчик запроса:
r = template.render('mt.html', {'some_content':blabla,})
Я ожидаю, что шаблон будет загружен из файла /project_dir/html/mt.html. Но он не со следующей ошибкой:
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__
handler.get(*groups)
File "D:\ap\pz4\pz4\main.py", line 33, in get
x8= template.render(fn, {'some_content':blabla,})
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\template.py", line 91, in render
t = _load_user_django(template_path, debug)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\template.py", line 113, in _load_user_django
template = django.template.loader.get_template(file_name)
File "C:\Program Files (x86)\Google\google_appengine\lib\django_1_3\django\template\loader.py", line 157, in get_template
template, origin = find_template(template_name)
File "C:\Program Files (x86)\Google\google_appengine\lib\django_1_3\django\template\loader.py", line 138, in find_template
raise TemplateDoesNotExist(name)
TemplateDoesNotExist: mt.html
В то же время, он отлично работает, когда я называю его с помощью прямого определения папки:
r = template.render(os.path.join(os.path.dirname(__file__),'html/mt.html').replace("\\","/"),{'some_content':blabla,})
GAE является 1.6.3 (локальная), версия django (с использованием use_library ('django', 'xxx')), проверенная с использованием 0.96, 1.2 и 1.3, результат тот же.
Что я делаю неправильно?
я поставил "mt.html" в следующих папках: app_root app_root/html app_root/html/app_name , но он по-прежнему не работает. – user1276220
Документы могут помочь вам немного больше, чем я. https: //docs.djangoproject.com/en/dev/ref/templates/api/ Похоже, что я ошибаюсь, я использовал подпапки в своих шаблонах, но вы этого не делаете. Это довольно легко отлаживать, добавляя строку для печати либо шаблона_файла, либо имя_файла в соответствующих местах, указанных в трассировке стека. – dragonx