是否可以将渲染的HTML输出嵌入到iPython输出中?
一种方法是使用
from IPython.core.display import HTML
HTML('<a href="http://example.com">link</a>')
Run Code Online (Sandbox Code Playgroud)
或(IPython多线单元别名)
%%html
<a href="http://example.com">link</a>
Run Code Online (Sandbox Code Playgroud)
哪个返回格式化的链接,但是
HTML()在列表或pandas打印表格中渲染对象.你可以做df.to_html(),但没有在细胞内建立链接.如何克服这些缺点并使iPython输出更具交互性?
我正在编写必须将javascript代码嵌入到IPython Notebook中并执行它的库。HTML / JS代码如下所示:
<div id="unique_id"></div>
<script>
var div = document.getElementById("unique_id");
// Do the job and get "output"
div.textContent = output; // display output after the cell
</script>
Run Code Online (Sandbox Code Playgroud)
和python代码:
from IPython import display
display.display(display.HTML(code))
Run Code Online (Sandbox Code Playgroud)
副作用是javascript代码存储在笔记本中单元格的输出中,并且每次重新加载页面或打开笔记本时,它将再次运行。
有什么方法可以禁止重新加载时执行的代码?还是可以运行javascript代码而不将其保存在输出中?
我使用从iPython Notebook 下载 CSV中建议的代码来动态构建 javascript 代码,并在从 jupyter Notebook 调用时使用 python 中的 Javascript() 将其传递到浏览器。代码效果很好。如果我在 python 函数中嵌入相同的代码并从同一个 jupyter 笔记本调用 python 函数,则 python 中的调用 Javascript() 不再有效。如何使可重用功能发挥作用?
我正在 Windows 10 上运行的 Chrome 版本 73.0.3683.103(官方版本)(64 位)上尝试此操作。如果已得到答复,我们深表歉意。我已经搜索过SO和谷歌。
这有效..
from IPython.display import Javascript
js_download = """
var csv = '%s';
var filename = 'results.csv';
var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
if (navigator.msSaveBlob) { // IE 10+
navigator.msSaveBlob(blob, filename);
} else {
var link = document.createElement("a");
if (link.download !== undefined) { // feature detection …Run Code Online (Sandbox Code Playgroud)