如何在Plotly Dash布局中解析渲染含HTML标签的变量?
问题原因
Dash默认会对传入文本组件的内容进行HTML转义,目的是防范XSS攻击。这会把<br>这类HTML标签转换成<br>形式的实体字符,浏览器自然会将其作为普通文本展示,而非解析成对应的HTML元素。
解决方法
直接在使用html.Div、html.P等组件时,添加dangerously_allow_html=True参数,开启原始HTML渲染:
示例代码
原来的写法(标签被转义):
html.Div(myData)
修改后(正常解析HTML标签):
html.Div(myData, dangerously_allow_html=True)
或者用html.P组件:
html.P(myData, dangerously_allow_html=True)
注意事项
使用这个参数会关闭Dash的XSS防护机制,务必确保myData的内容是完全可信的(比如是你自己生成的、经过校验的内容),绝对不能直接渲染来自不可信用户输入的HTML,避免安全风险。
内容的提问来源于stack exchange,提问作者Manu Manjunath
相关产品推荐
相关产品推荐

