当前位置: 首页 > news >正文

通过iframe使用Jupyter notebook

jupyter notebook需要进行一些设置才能被允许嵌入到网页中,正常情况下是不能直接嵌入的

目录

1  后端

2  前端

3  设置安全的IP与端口

4  避免使用token登录

5  打开指定文件的路由

6  jupyter notebook自启动


1  后端

from flask import Flask,render_templateapp = Flask(__name__)@app.route('/')
def test():return render_template('test.html')if __name__ == '__main__':app.run(host='0.0.0.0',debug=False)

2  前端

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><iframe src="http://localhost:8888/tree" frameborder="1" style="width:1500px;height:800px"></iframe>
</body>
</html>

3  设置安全的IP与端口

在home下执行jupyter notebook --generate-config

之后就会在 /home/sunrise/.jupyter中生成一个jupyter_notebook_config.py

在最后一行加入 c.NotebookApp.tornado_settings = { 'headers': { 'Content-Security-Policy': "frame-ancestors http://127.0.0.1 http://127.0.0.1:5000 'self' " }}

  • 其中 http://127.0.0.1:5000 是你后端的IP和端口

然后就能用了,下面网页中的报错和jupyter无关

4  避免使用token登录

这时每次访问的时候还有输入token,很麻烦,那么我们可以设置一个密码。首先找到token

这两个地方输入token

下面输入你要设置的密码,最后点下面的按钮

不保存token

第一次可以成功进入

后续进入的之后就不需要输入token了,只需要输入你设置的密码,然后再点Log in就行了

测试可以成功进入

5  打开指定文件的路由

比如说我要打开/home下的这个文件

然后正常打开一下这个文件,复制这里的地址

之后把路由换上去就可以打开了

  • 这里注意如果你jupyter notebook的启动位置不同,地址也会有相应的变化

6  jupyter notebook自启动

自启动的方式不止一种,我们通常用下面的方式,打开/etc/systemd/system,创建名为jupyter.service的文件

内容如下

重启后发现访问127.0.0.1:8888可以打开了,并且是在/的路径下打开

在/的路径下打开会有一个优点,就是noteboooks后面接的是ipynb文件的绝对路径

http://www.xdnf.cn/news/1021501.html

相关文章:

  • shell、bash、cmd、git 和 PowerShell 的区别与关系的详细解析
  • 吃透 Golang 基础:函数
  • 混合云战略规划深度解析:多云管理的技术架构与治理框架
  • 动态规划: 背包DP大合集
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 7】【AdapterProperties介绍】
  • 触觉智能RK3576核心板,工业应用之4K超高清HDMI IN视频输入
  • 基于Python的二手房源信息爬取与分析的设计和实现,7000字论文编写
  • 改写爬虫, unsplash 图片爬虫 (网站改动了,重写爬虫)
  • 给element-plus的table表格加上连续序号
  • Kubernetes 从入门到精通-资源限制
  • 清理电脑C磁盘,方法N:使用【360软件】中的【清理C盘空间】
  • Visual Studio Code 1.101.0 官方版
  • 晶晨S905L/S905L-B芯片-安卓7.1.2_【通刷】线刷固件包及教程
  • 解析Android SETUP_DATA_CALL 链路信息字段
  • MultiTalk 是一种音频驱动的多人对话视频生成模型
  • Java 实现 Excel 转化为图片
  • 亚远景-如何高效实施ASPICE认证标准:汽车软件企业的实践指南
  • nvue全攻略:从入门到性能优化
  • 如何使用 Python 对Bing搜索进行抓取
  • DSPC6678使用CCS开发的任务/中断分析功能(RTOS Analyzer)
  • 优傲机器人推出全新关节扭矩直接控制技术,助力科研与AI应用创新
  • Swift concurrency 9 — Sendable 协议:跨任务共享数据的安全保障
  • 猫狗翻译器!人和宠物无障碍交流!Good
  • 浪潮下的机器人竞技与创新突破 ——QOGRISYS O9201 系列模组赋能智能未来
  • ROS 2安装 slam_toolbox
  • 多个机器人同时加载在rviz及gazebo同一个场景中
  • 【linux】简单的shell脚本练习
  • 常用库的使用net
  • SNN学习(4):真实的生物神经学中神经元和人脑结构学习
  • Java机器学习全攻略:从基础原理到实战案例详解