我刚刚开始使用 Flask 学习网络开发。根据其官方教程:
外部可见服务器
如果您运行服务器,您会注意到服务器只是 可以从您自己的计算机访问,而不是从网络中的任何其他计 这是默认值,因为在调试模式下是用户的 应用程序可以在您的计算机上执行任意Python代码。
如果禁用了调试器或信任网络上的用户, 只需添加即可使服务器公开
--host=0.0.0.0
到命令行:flask run --host=0.0.0.0
这告诉您的操作系统要监听所有公共IP。
但是,当我尝试在其他设备上访问0.0.0.0:5000
时,出现错误:ERR_CONNECTION_REFUSE
。事实上,我认为这种行为是合理的,因为世界各地的人都可以使用0.0.0.0:5000
进行不同的测试,但不是教程意味着添加--host=0.0.0.0
可以使我的网页“不仅可以访问”你自己的电脑,也来自网络中的任何其他电脑“?
所以,我的问题是:
--host=0.0.0.0
做什么?答案 0 :(得分:2)
转到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.0
,10.10.0.1
上的服务器将只侦听来自本身的连接(localhost)。通过添加该参数,您可以告诉它从外部连接进行监听。