我正在构建一个电子邮件发送应用程序,数据库中存储了许多HTML模板,因此对于每个收件人,我需要通过合并HTML中的标签/占位符来自定义此模板,
示例电子邮件模板
<html>
....
Hello {{ Name }},
....
</html>
所以我需要根据我拥有的上下文变量进行编译。就像我们编译Django模板一样,在当前情况下该如何做
尝试使用render_to_string()
和get_template()
函数,但它们查找存储在templates/
文件夹中的实际模板文件。
答案 0 :(得分:2)
有两种方法:
使用from_string()
:https://docs.djangoproject.com/en/2.1/ref/templates/api/#django.template.Engine.from_string
直接使用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