Vagrant, Flask — App not 运行 on 10.10.10.10, 127.0.0.1

Vagrant, Flask — App not running on 10.10.10.10, 127.0.0.1

我正在 运行通过 Vagrant 在我的本地机器上安装一个应用程序。 Python/Flask 应用程序启动并打印:

* Running on http://127.0.0.1:5000/ * Restarting with reloader

我找到了这个 https://github.com/makersquare/student-dev-box/wiki/Using-Vagrant-for-Development#testing-web-based-applications-in-vagrant 这表明 10.10.10.10(不是 127.0.0.1)上的 Vagrant 应用程序 运行,但是当我导航到该 IP 地址(端口 5000)时,我得到了相同的结果:"This webpage is not available"。

问题:我的应用程序是 运行ning,但是 IP 地址是什么?我好像找不到。需要修改一些配置文件吗?

提前致谢。

在你调用app.run的文件中,应该是

app.run(host='0.0.0.0', port=...

在主机 OS 中,使用您 运行 应用所在的端口导航到访客的 IP。

有很多方法可以 运行 虚拟机上的 flask web 应用程序(由 vagrant 管理)。我认为以下方法非常灵活,因为您不必处理不同的 ip 地址。而且看起来您正在主机上进行开发。

您需要配置 2 项内容。在 VagranFile 中,您需要配置端口转发。

Vagrant.configure(2) do |config|
  # use default box
  config.vm.box = "ubuntu/trusty64"

  # forward port guest machine:5000 -> host machine:5000
  # port 5000 is default for flask web app
  config.vm.network "forwarded_port", guest: 5000, host: 5000
end

然后,在虚拟机上,您应该在 ip 0.0.0.0 上启动 flask 应用程序,这意味着网络应用程序将为任何 IP 地址提供服务。有关此主题的更多信息 -> flask doc 部分 外部可见服务器

if __name__ == "__main__":
    app.run("0.0.0.0", debug=True)

就是这样。您应该能够连接到 http://localhost:5000

sjudǝʊ 是对的,但我花了 4 个小时才弄清楚他忘了提到你也必须 运行:

vagrant halt 然后 vagrant up

为了使您对 vagrant 文件的更新真正生效

在最新版本的 Flask 和 python 中,您不需要配置 vagrant 文件或 python 脚本中不需要更改。只是 运行 带有 --host

的烧瓶
flask run --host=192.168.10.80