Vagrant,Flask - App未在10.10.10.10,127.0.0.1上运行

时间:2015-03-16 22:24:22

标签: python flask ip vagrant vagrantfile

我正在通过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 这表明Vagrant应用程序在10.10.10.10(而非127.0.0.1)上运行,但当我导航到该IP地址(端口5000)时,我得到相同的结果:“此网页不可用”。

问题:我的应用正在运行,但是在什么IP地址上?我似乎找不到它。我是否需要修改一些配置文件?

提前致谢。

4 个答案:

答案 0 :(得分:8)

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

您需要配置两件事。在 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应用程序,这意味着Web应用程序将用于任何IP地址。有关此主题的更多信息 - > flask doc部分外部可见服务器

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

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

答案 1 :(得分:1)

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

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

在主机操作系统中,使用您正在运行该应用程序的端口导航到访客的IP。

答案 2 :(得分:1)

sjudǝʊ是对的,但我花了4个小时才弄明白他忘了提你还必须跑:

vagrant halt然后vagrant up

为了让您对vagrant文​​件的更新实际生效

答案 3 :(得分:1)

在最新版本的Flask和python中,您不需要配置流浪者文件,也不需要在python脚本中进行任何更改。只需使用--host

运行烧瓶
flask run --host=192.168.10.80