如何在脚本中使用django-template而不是jinja2?

时间:2012-01-17 13:05:19

标签: django django-templates jinja2

我正在为Django编写管理命令,并创建了我解析的模板文件来创建新文件。

到目前为止,我使用的是Jinja2,但由于它是Django管理命令,我想切换到基于django的模板。

您知道如何在django管理命令文件中设置模板环境吗?

我正在寻找的是相当于这个jinja2代码:

env = Environment(loader=PackageLoader('modulo.bin', 'templates/plugin_templates'))

编辑:在管理命令中确定它可以正常工作。但是如果我想在普通的python脚本中使用django-template呢?

谢谢,

雷米

2 个答案:

答案 0 :(得分:1)

您无需设置任何环境。你在Django命令中,你可以使用Django模板。

答案 1 :(得分:1)

Django管理命令可以访问所有django环境变量,就像在视图中一样。

要加载模板,请为其指定一些上下文,然后保存结果:

from django.template.loader import render_to_string

c = {'var':'value','var2':'value2'}  # values you want to send to the template
content = render_to_string('template.html',c) # rendered template

这遵循正常的django模板规则,因此template.html应该是可加载的(换句话说,它应该在'正常'位置,django查找模板;或者在TEMPLATE_DIRS中列出的目录中)。