从网络访问我的网页时出错

Error accessing my webpage from network

我刚刚开始使用 Flask 学习网络开发。根据其官方教程:

Externally Visible Server

If you run the server you will notice that the server is only accessible from your own computer, not from any other in the network. This is the default because in debugging mode a user of the application can execute arbitrary Python code on your computer.

If you have the debugger disabled or trust the users on your network, you can make the server publicly available simply by adding --host=0.0.0.0 to the command line:

flask run --host=0.0.0.0

This tells your operating system to listen on all public IPs.

但是,当我尝试在另一台设备上访问 0.0.0.0:5000 时,出现错误:ERR_CONNECTION_REFUSE。事实上,我认为这种行为是合理的,因为世界各地的人都可以使用 0.0.0.0:5000 进行不同的测试目的,但是教程不是暗示添加 --host=0.0.0.0 可以使我的网页 "accessible not only from your own computer, but also from any other in the network" ?

那么,我的问题是:

  1. 添加 --host=0.0.0.0 有什么作用?
  2. 当服务器 运行 在设备 A 上时,如何在设备 B 上访问我的网页?

您不会通过转到 0.0.0.0:5000 访问另一台计算机上的 Flask 服务器。相反,您需要输入运行正在使用的计算机的 IP 地址。

例如,如果您在具有 IP 地址 10.10.0.1 的计算机上进行开发,您可以 运行 服务器像这样:

flask run --host=0.0.0.0 --port=5000

这将启动服务器(在 10.10.0.1:5000 上)并侦听来自任何地方的任何连接。现在您的其他设备(例如,在 10.10.0.2 上)可以通过在浏览器中转到 http://10.10.0.1:5000 来访问该服务器。

如果您没有 host=0.0.0.010.10.0.1 上的服务器将只侦听来自 自身 (localhost) 的连接。通过添加该参数,您告诉它从自身外部的连接中监听。