我正在尝试在windows 10机器上设置服务器,使用Python和Flask,但它不响应外部请求。
这是我的server.py
文件:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hi there"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
运行时显示:
* Running on all addresses (0.0.0.0)
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://127.0.0.1:5000
* Running on http://195.XX.XXX.XXX:5000 (Press CTRL+C to quit)
事实上,如果我尝试从那台机器访问它,使用127.0.0.1:5000
或195.XX.XXX.XXX:5000
,它工作正常。
然而,当试图从另一台机器访问它时,(使用Chrome,如果这可能是一个问题),它只是无限期地加载,然后说没有收到数据,ERR_EMPTY_RESPONSE
。
这是怎么回事?我已经按照文档上的步骤进行了操作,所以我不知道哪里出错了。
我还完全禁用了windows 10机器上的防火墙。
你的跑步方式很重要。如果是通过
python server.py
则app.run()
将执行,服务器将绑定到0.0.0.0
但是如果你通过
的变体运行FLASK_APP=server.py flask run
则app.run()
不会执行,服务器将绑定到127.0.0.1
在这种情况下,添加--host=0.0.0.0
应该解决问题(除非您有防火墙问题)。