如何在Yattag代码中正确添加defer属性?
解决Yattag中添加defer属性的报错问题
你遇到的问题在于错误使用了doc.asis()方法,同时对Yattag处理HTML布尔属性的方式不熟悉。以下是正确的实现方式:
推荐写法:使用Yattag的标签生成功能
Yattag的tag方法/上下文管理器会自动处理HTML布尔属性(比如defer),只需传入defer=True即可:
方式1:上下文管理器(更易读,适合带内容的标签)
from yattag import Doc doc, tag, text = Doc().tagtext() # 生成带defer和src属性的script标签 with tag("script", defer=True, src="/js/table_2.js"): pass # script标签无内容,用pass占位
方式2:直接调用tag方法(适合自闭合标签)
doc.tag("script", defer=True, src="/js/table_2.js")
两种方式最终都会生成符合要求的HTML代码:
<script defer src="/js/table_2.js"></script>
不推荐:强行使用doc.asis()
如果一定要用doc.asis(),需要直接传入完整的HTML字符串(失去了Yattag动态生成标签的优势):
doc.asis('<script defer src="/js/table_2.js"></script>')
内容的提问来源于stack exchange,提问作者LML
相关产品推荐
相关产品推荐

