python - 将 django loader.render_to_string() 转换为用于 sendgrid 的烧瓶
问题描述
我们正在将我们的 django 应用程序转换为烧瓶,但我找不到烧瓶的 django loader.render_to_string 之类的东西。
有什么建议我在烧瓶中尝试了 render_template_string 但无济于事?
from django.template import loader
from sendgrid import SendGridAPIClient
def send_email:
dt = {
'name': xxxxxx,
'application_name': xxxxxx,
}
email_template_text = loader.render_to_string("xxxxx.txt", dt)
email_template_html = loader.render_to_string("xxxxx.html", dt)
data = {
"personalizations": [
{
"to": [
{
"email": xxxxx
}
],
"subject": xxxxxx
}
],
"from": {
"email": xxxxxxx
},
"content": [
{
"type": "text/plain",
"value": email_template_text
},
{
"type": "text/html",
"value": email_template_html
}
]
}
sg = SendGridAPIClient(xxxxx)
response = sg.send(data)
解决方案
flask.render_template
[ 1 ]应该足以满足您期望的结果。
记得为模板的上下文参数解包字典。
此外,这必须在烧瓶应用程序的上下文中完成。如果这可能由工作人员运行,您的代码将类似于:
from flask import render_template, Flask
app = Flask(__name__)
with app.app_context():
email_template_text = render_template("xxxxx.txt", **dt)
email_template_html = render_template("xxxxx.html", **dt)
推荐阅读
- jpa - JPA Criteria API 动态排序
- reactjs - 在对预构建的 JS 函数而不是组件函数进行初始化之前无法访问“funct_name”,为什么?
- jsf - 如何在primefaces,JSF中使用一个命令按钮下载多个txt文件
- typescript - 迭代 TypeScript 中的 Headers 条目
- visual-studio - Visual Studio 2019 中 SCSS 文件的 WebCompile 错误
- django - 在 django admin 中获取对象名称
- python - Python 模型中的继承
- python - 如何使用 .replace 将“string”类型的 DataFrame 列转换为“float”?
- docker - Kubernetes 移除了对 Docker 的支持但支持 containerd(它是 Docker 的一部分)是什么意思?
- tinymce - 如何防止tinymce将类添加到列表中的每个新li