我正在使用Python在Jupyter notebook中工作。在我的代码中,我正在执行一些操作来创建pandas DataFrame,显示它,最后将其保存为csv文件。我现在试图允许用户通过单击在显示表后创建的按钮来下载它。在笔记本中,它通过使用下载来工作()从hublib.ui包,但一旦我移动到瞧,按钮什么也不做。在这一点上,我改变了,我使用的HTML部件从ipywidgets。它是工作,但它被视为一个可点击的文本。我想知道是否有办法让它显示为按钮而不是纯文本。
下面是负责下载的部分代码:
self.csv_file = self.df.to_csv("table.csv",index=False)
htmlWidget = widgets.HTML(value="")
self.create_download_link("table.csv", htmlWidget)
display(htmlWidget)
def create_download_link(self, filename, htmlWidget):
title="Click here to download the table in csv format"
data = open(filename, "rb").read()
b64 = base64.b64encode(data)
payload = b64.decode()
html = '<a download="{filename}" href="data:text/csv;base64,{payload}" target="_blank">{title}</a>'
htmlWidget.value = html.format(payload=payload,title=title,filename=filename)
谢谢你的帮助。
1条答案
按热度按时间8yparm6h1#
只需在
<a></a>
中添加一个HTML按钮结果: