访问在主机 Windows 机器上的 Virtual box ubuntu 上运行的 Web 服务器

iJa*_*ade 1 python virtualbox flask

我正在使用 Windows 机器上的 Virtual Box Manager 运行 Ubuntu。在虚拟机盒 ubuntu 中,我正在运行一个 python Flask 应用程序,该应用程序在http://localhost:5000 上运行。

我尝试使用我使用的 VM 盒 IP 访问 Windows 机器上的 VM 盒 localhost URL ifconfig。但它说:

Your Internet access is blocked
Run Code Online (Sandbox Code Playgroud)

我是否以正确的方式访问它?

这是我的 python 烧瓶代码:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

Has*_*ood 5

您需要在启动应用程序时指定 host='0.0.0.0' 。默认情况下,它只接受来自本地主机的请求。因此,如果您从其他 IP 发送请求,则必须指定主机。

见下面的例子。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

此外,如果您想在访问应用程序时激活调试模式以分析异常/错误。您还可以将调试属性设置为“真”。

if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)
Run Code Online (Sandbox Code Playgroud)