python - 在 Vagrant 中访问端口 5000 时遇到问题

标签 python networking flask vagrant vagrantfile

我正在尝试在 Vagrant 环境中自学 Flask。我知道 Flask 默认在端口 5000 上运行服务器。在我的 Vagrantfile 中,我有:

config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network :forwarded_port, guest: 5000, host: 5000

我有一个简单的 Flask 应用教程:

from flask import Flask 
app = Flask(__name__)

@app.route('/hello')
def hello_world():
    return 'Hello world!'

if __name__ == '__main__':
    app.run(debug=True)

然而,当我在我的 Vagrant 环境中运行 python hello.py 并随后在桌面上的 Chrome 中转到 127.0.0.1:5000/hello 时,我不能连接。

我对网络知之甚少。我错过了什么?

最佳答案

如果您从桌面上的 Chrome 访问,从技术上讲,您是从另一台计算机访问(因此您需要将 host='0.0.0.0' 作为 app.run 的参数() 告诉 guest 操作系统接受来自所有公共(public)(外部)IP 的连接。

这对我有用(对于 Chrome 中的 127.0.0.1:5000/hellolocalhost:5000/hello):

from flask import Flask
app = Flask(__name__)

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

if __name__ == "__main__":
    app.run(host='0.0.0.0')

关于python - 在 Vagrant 中访问端口 5000 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23230599/

相关文章:

python - 带有神经网络的 EnsembleVoteClassifier

c# - 在 C# 中从客户端向服务器发送字符串

javascript - 我想结合 jQuery、AJAX 和 Flask,但无法从服务器获取响应以在模板上写入

python - ndb 单例模式

python - ImportError : cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3. 8/distutils/__ init__.py)

c - TCP接收缓冲区

Java IO vs NIO,真正的区别是什么?

python - 为什么在 jinja 中使用 "safe"过滤器会创建嵌套元素

flask - SQLAlchemy-在模型字段上指定选项

python - NumPy ufunc 在一个轴上比另一个轴快 2 倍