javascript Jinja在渲染模板时将chat.js图表转换为图像

dkqlctbz  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(68)

在我开始我的项目之前,我有一个关于Jinja 2中的javascript的问题,所以我可以理解jinja是否是正确的解决方案

  • 我想创建一个html电子邮件模板,它将为每个用户填充一些值,然后通过电子邮件向他们发送呈现的模板。我已经设置了电子邮件功能
  • 我想在页面上包含一些来自chart.js的图表,但由于电子邮件不允许使用JS,因此我必须在发送电子邮件之前将图表转换为图像。
我的问题是,jinja允许在渲染模板时发生这种情况吗?我可以确保在渲染模板时图表被转换为图像,并且在发送模板之前所有JS都被删除/不活动吗?
beq87vna

beq87vna1#

不,金贾(或任何类似的模板系统)无法在后端将JavaScript图表转换为图像,因为JavaScript是在浏览器中运行的,所以你需要一个无头的浏览器引擎(或类似的JS运行时)在后端进行转换。这是可行的,但是这会使你的环境更加复杂,因为你需要维护一个JS运行时沿着Python环境。如果你想朝这个方向发展,可以看看使用NodeJS导出图表的chartjs-node-canvas,或者任何无头浏览器。
不过我强烈推荐一种不同的方式:使用Python绘图库,如Matplotlib。在电子邮件中,您甚至无法使用任何JS交互,因此静态绘图库非常适合此任务。此外,它是Python,因此无需向您的环境添加不同的运行时。

相关问题