我正在通过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地址上?我似乎找不到它。我是否需要修改一些配置文件?
提前致谢。
答案 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)
vagrant halt
然后vagrant up
为了让您对vagrant文件的更新实际生效
答案 3 :(得分:1)
在最新版本的Flask和python中,您不需要配置流浪者文件,也不需要在python脚本中进行任何更改。只需使用--host
运行烧瓶flask run --host=192.168.10.80