Update avaliable. Click RELOAD to update.
目录

在 Google Colab 如何使用代理端口将 Python 服务转发到公网访问

00-use-port-forward-host-server-in-colab

Google Colab是由Google提供的一项免费的云端Jupyter笔记本服务。它允许用户在浏览器中编写和执行Python代码,并且无需进行任何本地安装。Google Colab提供了强大的计算资源,包括GPU和TPU,可用于加速机器学习和数据科学任务。

本篇文章介绍如何在 Colab 中执行 Python Flask 程序,主要完成以下两个目的:

1. 端口转发Colab中运行的Flask程序

重点在于下面两行代码

# port forward
from google.colab.output import eval_js
print(eval_js("google.colab.kernel.proxyPort(5000)"))

这里使用Flask只是个示例,不局限于使用Flask,只要是端口上的服务都可以暴露

其中的端口就是你服务的端口,完整的 Colab 程序如下:

# 安装依赖
!pip install flask

# 端口转发
from google.colab.output import eval_js
print(eval_js("google.colab.kernel.proxyPort(5000)"))


from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def index():
    return '<span>The Server is Running.</span>'

if __name__ == '__main__':
    app.run()

点击单元格左侧运行按钮,控制台的输出里包含 分配的域名,使用此域名即可实现公网访问,Greet

01-use-port-forward-host-server-in-colab

2. Flask程序返回Drive中的静态文件

升级上面章节的代码,实现 Flask 中 Templates 模板文件的返回,在 Google Drive 目录下创建一个 templates 目录,在 templates 目录中新建一个 index.html 的测试文件,并写入内容

这里的 template 路径可放在 Drive 任意地方,不局限于跟路径

02-use-port-forward-host-server-in-colab

加入 挂载Drive 的代码,且 指定模板路径,下面代码 注释 是变动后的地方,完整的代码如下:

from google.colab.output import eval_js
print(eval_js("google.colab.kernel.proxyPort(5000)"))

# 挂载Google Drive,程序运行的时候会弹出授权请求
from google.colab import drive
drive.mount('/content/gdrive/')

from flask import Flask, render_template

# 指定模板目录的路径
app = Flask(__name__, template_folder='/content/gdrive/MyDrive/templates')

@app.route('/')
def index():
    return '<span>The Server is Running.</span>'

# 返回模板文件
@app.route('/index')
def html():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

保存运行,访问 https://xxx.xxx.xxx/index 路径将会得到 index.html 中的内容,Perfect

如何在 Drive 中定位资源目录 ?

如果你的 templates 目录不在根路径,如何定位到模版目录的路径,其实很简单,鼠标移到到挂载Drive的代码处,cmd+点击即可弹出,按着目录坐标定位模板目录即可

03-use-port-forward-host-server-in-colab

版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2023/12/use-port-forward-host-server-in-colab/