我有一个个性化的发送HTML邮件Python应用程序,它加载与像姓名,日期标签的HTML模板...
<label id="name"></label>
<label id="date"></label>
...
并在加载HTML结束我添加脚本与这些标签的价值
<script>
document.getElementById('name').innerHTML = 'Mau';
document.getElementById('date').innerHTML = '19-02-2019';
...
</script>
</html>
如果我打开生成的HTML使用Web浏览器我看到的价值观正确更换标签
问题是,我发现,电子邮件客户端将无法运行该脚本,显示默认标签值。
我不知道如何可以定义在HTML文件的开头常数不使用脚本?
我知道我可以在Python加载HTML和搜索每行的变量行,但是这将是耗时的,因为他们就像在电子邮件20个标签。
每个变量并不总是在同一行,因为我使用不同的模板和欢迎文本。
所以我在想,如果我可以在开头或,我只是在发送之前附加到HTML中的HTML结束界定什么?
就像是:
通过定义添加蟒
name_constant = “茂” date_constant = “12_12_2019” ...
所以,我并不需要在身体模板写什么
标签ID = “name_lbl”> name_constant
...
谢谢
你不能在HTML中的变量。 HTML是标记语言本身。不多。
什么可以做,虽然是使这些标签包含值一些占位符。然后你会从你的后端返回HTML之前替换占位符。
事情是这样的:HTML:
<label id="name">##LABEL_NAME_VALUE##</label>
<label id="date">##LABEL_DATE_VALUE##</label>
然后在你的Python脚本,该脚本返回HTML只是实际值替换的占位符。
希望能帮助到你。
::before
& ::after
如果JavaScript是不可行的,我不知道Python可以做(Python的标签应张贴),CSS伪元素会起作用,因为标签的内容是不变的。顺便说一句,如果你有20个标签,你应该使用类,而不是相同的文本。下面的演示显示了使用IDS作为您在问题和使用类以及所提供的代码有它。
#name::after {
content: 'Mau'
}
#date::after {
content: '19-02-2019'
}
.name::before {
content: 'Foo'
}
.date::before {
content: '04-02-2019'
}
/* For Demo Purposes */
label {
display: block
}
<label id="name"></label>
<label id="date"></label>
<label class="name"></label>
<label class="date"></label>
<label class="name"></label>
<label class="date"></label>
<label class="name"></label>
<label class="date"></label>
<label class="name"></label>
<label class="date"></label>
<label class="name"></label>
<label class="date"></label>