使用Django的模板引擎,而不使用Django的其余部分

时间:2012-01-25 12:36:04

标签: python django templates

我正在构建一个应用程序,它使用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文件位于同一目录中。

3 个答案:

答案 0 :(得分:8)

我建议使用Jinja2代替Django模板作为独立解决方案。

答案 1 :(得分:6)

你试过这个吗?

settings.configure(TEMPLATE_DIRS=('.',))

由于模板与python代码位于同一目录中,因此加载程序应该足以找到模板。

答案 2 :(得分:3)

为了让加载程序找到你的模板;您需要在TEMPLATE_DIRS中的settings.py元组中找到模板所在的目录。默认情况下,django将在应用程序中搜索templates目录,这样如果您没有注册应用程序; django找不到模板。

如果您使用的是“django like”模板引擎,jinja非常接近django的语法,并且完全是自包含的,那么您现在就不会遇到意想不到的问题。