首页 > 编程问答 >在绘图破折号布局中使用 HTML 标签嵌入变量

在绘图破折号布局中使用 HTML 标签嵌入变量

时间:2024-07-22 13:22:51浏览次数:12  
标签:python html plotly-dash

我有一个变量,其中一些文本已经包含 HTML 标签 - 例如换行符/粗体/等。 我根据某些条件从数据框中提取此变量。

我想在我的 Dash 布局中使用它。

myData = df["HTML_TEXT_COLUMN].values[0]

例如,您可以考虑 myData 变量具有以下文本 -

line1 <br> line2 <br> line3

I我正在尝试将此变量用作我的破折号布局中的 HTML,如下所示 -

app.layout = html.Div(children = [
    html.H1("Some header),
    myData
    # OR html.P(myData)
    ]
)

这将布局视为文本,并将 HTML 标签视为文本。 相反,我想将该变量视为 HTML 并考虑换行符。 我做错了什么?

理想情况下,我不想将变量保存为 HTML 文件,然后在 iFrame 中使用该 html 文件,因为我不想保存不必要的 HTML 文件。


需要做的就是在的 Dash 布局中使用 dangerously_set_inner_HTML 属性。此属性允许将字符串作为 HTML 传递,Dash 会将其呈现为 HTML 而不是纯文本。

以下是如何使用它的方法:

import dash
import dash_html_components as html
import pandas as pd

# 示例数据
df = pd.DataFrame({"HTML_TEXT_COLUMN": ["line1 <br> <b>line2</b> <br> line3"]})
myData = df["HTML_TEXT_COLUMN"].values[0]

app = dash.Dash(__name__)

app.layout = html.Div(children=[
    html.H1("Some header"),
    html.Div(dangerously_set_inner_HTML={'__html': myData})
])

if __name__ == '__main__':
    app.run_server(debug=True)

在这个例子中:

  1. 我们从 DataFrame 中提取 myData
  2. html.Div 组件中,我们使用 dangerously_set_inner_HTML 属性。
  3. 我们将一个字典传递给 dangerously_set_inner_HTML ,其中包含一个键 __html ,其值为 myData

这将呈现包含三个行的标题,其中“line2”以粗体显示。

重要提示:

  • 名字 “dangerously_set_inner_HTML” 并非偶然。如果字符串来自不受信任的来源,则允许 HTML 注入,这会带来安全风险。确保信任用于创建 myData 的数据,或者在使用 dangerously_set_inner_HTML 之前对其进行清理。
  • 还有其他方法可以实现这一点,例如使用 dcc.Markdown 组件,该组件允许使用 Markdown 格式化文本,以及使用 html.Pre 组件来保留预格式化的文本。选择最适合需要的方法。

标签:python,html,plotly-dash
From: 78765048

相关文章

  • 使用 Python XlsxWriter 将 DatePicker 添加到 Excel 单元格中?
    我正在尝试使用PythonXlsxWriter生成的Excel创建输入表单。我想知道是否可以在Excel单元格中添加一个迷你日历(作为DatePicker)供用户输入日期?我偶然发现了Microsoft支持团队提供的本指南插入日期选择器:|||https://support.microsoft.com/en-us/office/......
  • [1037] Python operation of three keys shortcut (pynput)
    Theshortcutof win+shift+leftdoesnotworkwellin pyautogui,butitworkswellin pynput.MovingtheActiveWindowtoaDifferentMonitor: You’reright;PyAutoGUIdoesn’tdirectlysupportmovingwindowsacrossmonitorswiththeeleganceofaswan......
  • HTML5+CSS3学习笔记第二天
    二、HTML第二天(列表、表格、表单)1.列表无序列表:每行前面多一个小点<ul><li>列表条目1</li><li>列表条目2</li><li>列表条目3</li></ul>有序列表:每行前面自动加1.2.3.的序号<ol><li>有序列表条目1</li><li>有序列表条......
  • HTML5+CSS3学习笔记第一天
    一、HTML初体验11.HTML定义:超文本标记语言超文本:链接标记:标签、带尖括号的文本2.标签语法双标签:成对出现,中间包裹内容单标签:只有开始标签eg:水平线hr、换行br<>放英文字母即标签名结束标签多一个/3.HTML基本骨架<html> <head> <title>网页标题</title> </head>......
  • Python:定期检测断开故障的USB设备并重新初始化实例
    我有一个USB设备,有时会通过USB端口发送串行数据。问题是设备出现故障,有时会无缘无故地断开连接并再次连接到电脑。问题不大,但在这些情况下我需要重新初始化serial.Serial(port)实例,这有点烦人。该设备没有可以从我那里收到的任何命令,我可以验证它是否已连接。我可以......
  • 【校招+社招】华为OD机试 - 拼接URL(Java、JavaScript、Python、C、C++)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)算法概述URL拼接(URL拼接)是指将多个URL组件(方案、主机、端口、路径、查询参......
  • 使用 Google Colab 时,Python 包“datasets”从 virtualenv 目录“site-packages”中消
    我正在使用GoogleColab并尝试创建一个虚拟环境来工作。我的代码是:fromgoogle.colabimportdrivedrive.mount('/content/drive')!pipinstallvirtualenvmyenv_dir='/content/drive/MyDrive/virtual_env/'!virtualenv{myenv_dir}!chmod+x{myen......
  • Python 3 - openpyxl - 按名称迭代列
    使用openpyxl不按数字而是按列标题(ws第一行中的字符串值)迭代列的最简单方法是什么:如下所示:forcellinws.columns['revenue']:print(cell.value)不幸的是,openpyxl不直接支持像ws.columns['revenue']这样按列标题进行迭代。openpyxl......
  • Python selenium 网络抓取 recaptcha
    我想抓取一个网站,但在此之前有一个验证码,我什至使用api获取了数据,并且我还将其注入到网站中,因为网页没有提交按钮,我无法提交。流程是这样的,如果我解决同一网址中的验证码,隐藏的内容将被显示。但它并没有得到解决。我到处都找过了。我找不到解决方案。谁能帮我解决这个问题?......
  • Python 装饰器 详解+案例
    Python装饰器是一种特殊的函数,用于修改其他函数的功能。装饰器可以在不改变原函数代码的情况下,对函数进行增加、修改或者扩展功能。装饰器的语法形式是在函数定义前使用@符号,并在@后面加上装饰器的名称。装饰器函数接受被装饰函数作为参数,并返回一个修改后的函数。impo......