如何在Google Colaboratory Python笔记本中使用Flask?
我正试图在Google Colab Python笔记本中使用Flask构建一个网站。然而,运行在常规Python上运行的常规Flask代码无法在Google Colab上运行。我需要的代码,将解决它请:) 服务器代码:如何在Google Colaboratory Python笔记本中使用Flask?,python,flask,google-colaboratory,Python,Flask,Google Colaboratory,我正试图在Google Colab Python笔记本中使用Flask构建一个网站。然而,运行在常规Python上运行的常规Flask代码无法在Google Colab上运行。我需要的代码,将解决它请:) 服务器代码: import socket print(socket.gethostbyname(socket.getfqdn(socket.gethostname()))) from flask import Flask app = Flask(__name__) @app.route("
import socket
print(socket.gethostbyname(socket.getfqdn(socket.gethostname())))
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
import threading
threading.Thread(target=app.run, kwargs={'host':'0.0.0.0','port':80}).start()
客户端代码:
import requests
r = requests.get("http://172.28.0.2/")
print(r.status_code)
print(r.encoding)
print(r.apparent_encoding)
print(r.text)
要重新启动烧瓶,您可以单击菜单:运行时->重新启动运行时
共享链接:
服务器端代码AKA:backend
from flask import Flask
import threading
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
threading.Thread(target=app.run, kwargs={'host':'0.0.0.0','port':6060}).start()
在colab中呈现服务器
import IPython.display
def display(port, height):
shell = """
(async () => {
const url = await google.colab.kernel.proxyPort(%PORT%, {"cache": true});
const iframe = document.createElement('iframe');
iframe.src = url;
iframe.setAttribute('width', '100%');
iframe.setAttribute('height', '%HEIGHT%');
iframe.setAttribute('frameborder', 0);
document.body.appendChild(iframe);
})();
"""
replacements = [
("%PORT%", "%d" % port),
("%HEIGHT%", "%d" % height),
]
for (k, v) in replacements:
shell = shell.replace(k, v)
script = IPython.display.Javascript(shell)
IPython.display.display(script)
display(6060, 400)
您可能会遇到CORS(跨来源资源共享)限制,或者是在笔记本环境下不起作用的东西。那么,在Google Colab中使用Python笔记本构建web框架是否有其他方法?是否有任何方法可以将“Control-C”发送到服务器,而无需执行
重新启动运行时
?而这些代码可能会回答这个问题,提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
!pip install flask-ngrok
from flask import Flask
from flask import request
from flask_ngrok import run_with_ngrok
app = Flask(__name__)
run_with_ngrok(app) # Start ngrok when app is run
# for / root, return Hello Word
@app.route("/")
def root():
url = request.method
return f"Hello World! {url}"
app.run()
from flask_ngrok import run_with_ngrok
from flask import Flask
app = Flask(__name__)
run_with_ngrok(app)
@app.route("/")
def home():
return f"Running Flask on Google Colab!"
app.run()