我正在构建一个应用程序,它使用Django模板引擎/语言来“编译”一些HTML。但是,该应用程序不能在Django上运行,并且没有所有的配置和东西。 当我尝试使用它时,我收到以下错误:
Traceback (most recent call last):
File "Send.py", line 33, in <module>
template = loader.get_template("email.html")
File "/Library/Python/2.7/site-packages/django/template/loader.py", line 157, in get_template
template, origin = find_template(template_name)
File "/Library/Python/2.7/site-packages/django/template/loader.py", line 138, in find_template
raise TemplateDoesNotExist(name)
django.template.base.TemplateDoesNotExist: email.html
我使用的代码如下:
from django.template import loader, Context
from django.conf import settings
template = loader.get_template("email.html")
rendered = template.render(data)
模板与Python文件位于同一目录中。
答案 0 :(得分:8)
我建议使用Jinja2代替Django模板作为独立解决方案。
答案 1 :(得分:6)
你试过这个吗?
settings.configure(TEMPLATE_DIRS=('.',))
由于模板与python代码位于同一目录中,因此加载程序应该足以找到模板。
答案 2 :(得分:3)
为了让加载程序找到你的模板;您需要在TEMPLATE_DIRS
中的settings.py
元组中找到模板所在的目录。默认情况下,django将在应用程序中搜索templates
目录,这样如果您没有注册应用程序; django找不到模板。
如果您使用的是“django like”模板引擎,jinja非常接近django的语法,并且完全是自包含的,那么您现在就不会遇到意想不到的问题。