Flask服务器在Macbook上托管时可见,但在Windows桌面上托管时不可见? (尝试过一切吗?)

时间:2018-11-13 03:26:13

标签: python windows macos flask server

我的Macbook和Windows桌面位于同一wifi网络上。

这是我在Mac(myFlask.py)上运行的python 3代码:

from flask import Flask

app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello from Mac"

pn = 5000
ip = "192.168.1.146"

if __name__ == '__main__':
    app.run(host = ip,port=pn)

当我在Mac上运行此程序时,可以在两台设备的浏览器中输入192.168.1.146:5000作为网址,并查看“来自Mac的Hello”

这是我在桌面(myFlask.py)上运行的python 3代码:

from flask import Flask

app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello from Windows"

pn = 5000
ip = "192.168.1.105"

if __name__ == '__main__':
    app.run(host = ip,port=pn)

问题::当我在Windows桌面上运行此程序,并且在两个设备上的浏览器中都输入192.168.1.105:5000作为URL时,我都会在台式机,但在Mac上为“无法访问此站点”。

我尝试了以下操作:

  1. 我再次检查了IP地址,而192.168.1.105是正确的IP地址(ipv4)。我还在Windows命令行上尝试了ipconfig中的所有其他IP地址,但还是没有运气。
  2. 我在http://flask.pocoo.org/docs/0.12/quickstart/处查看了外部可见的服务器,并尝试执行$ python3 myFlask.py --host = 0.0.0.0运气不好。
  3. 我检查了路由器(Linksys)中是否启用了DHCP,是的。
  4. 我在Windows的控制面板中打开了“家庭”,“公共”和“域”上的所有共享设置。
  5. 我关闭了防火墙设置。

即使如此,我的Mac,Android手机,iphone或其他Mac都找不到Windows桌面上托管的Flask服务器。但是我所有其他设备(包括Windows桌面)都可以看到Mac托管的Flask服务器。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

这变成了网络的变幻莫测。更改为

ip = '0.0.0.0'

,然后重试。当您尝试将--port=0.0.0.0传递给您的应用程序时,该选项被忽略,因为您的应用程序未解析选项。 flask运行程序会解析它们。在Mac方面,调用将是

FLASK_APP=myApp.py flask run --port=0.0.0.0

我不知道Windows上的等效功能。