Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Google Colaboratory Python笔记本中使用Flask?_Python_Flask_Google Colaboratory - Fatal编程技术网

如何在Google Colaboratory Python笔记本中使用Flask?

如何在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("

我正试图在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("/")
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()