如何在Django中编译保存在数据库中的模板

时间:2018-08-19 17:19:37

标签: django python-3.x django-templates

我正在构建一个电子邮件发送应用程序,数据库中存储了许多HTML模板,因此对于每个收件人,我需要通过合并HTML中的标签/占位符来自定义此模板,

示例电子邮件模板

<html>
 ....
     Hello {{ Name }},
 ....
</html>

所以我需要根据我拥有的上下文变量进行编译。就像我们编译Django模板一样,在当前情况下该如何做

尝试使用render_to_string()get_template()函数,但它们查找存储在templates/文件夹中的实际模板文件。

2 个答案:

答案 0 :(得分:2)

有两种方法:

  1. 使用from_string()https://docs.djangoproject.com/en/2.1/ref/templates/api/#django.template.Engine.from_string

  2. 直接使用Template对象。

示例。

    from django.template import Template

    template = Template("My name is {{ my_name }}.")

答案 1 :(得分:2)

您可以使用Django的template.Template类

from django import template

html_template_str = "<html> Hello {{ Name }} </html>"

t = template.Template(html_template_str)
c = template.Context({'Name':"Name"})
html = t.render(c)

html 将包含呈现的模板html