从同一网络上的其他设备连接到 Flask Server

rmd*_*_po 9 python ip web-applications localhost flask

亲爱的 stackoverflow 聪明人,

我知道这个问题在这里被问了很多,但到目前为止,没有一个发布的解决方案对我有用。任何帮助将不胜感激:

问题:无法从同一网络上的其他设备(PC、手机)连接到 Flask 应用服务器。(换句话说:本地主机工作正常,但我无法从外部设备连接)

我尝试过的:

1)在 app.py 中进行设置app.run(host='0.0.0.0', port=5000, debug=True, threaded=True),以便服务器监听所有可用的网络接口。

2)在 Windows Defender 防火墙中启用本地网络中端口 5000 的 TCP 流量(添加入站和出站规则)

3)在外部设备浏览器的 URL 栏中使用主机 PC 的 IPv4 地址,格式如下:http://<host_ipaddress>:<port>/

4)在外部设备浏览器的 URL 栏中使用我的主机 PC 的主机名,格式如下:http://<host_name>:<port>/

5)从 Windows Powershell 和 Python (.py) 执行器运行 app.py 文件

到目前为止,这些解决方案都不起作用,即使在尝试从几个不同的外部设备进行连接后也是如此。在此先感谢您的帮助!

rmd*_*_po 11

我通过将家庭网络配置文件更改为私有网络而不是公共网络解决了这个问题,这样我的电脑就可以被发现。完全忽略了这一点!

希望这对某人有帮助!


小智 10

这是对我有用的方法。

  1. 使用ifconfig命令查找系统的IP地址
  2. 将代码中的主机ip替换为你的ip

服务器.py:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def about():
    return 'It worked!'

if __name__ == '__main__':
    app.run(host='192.168.43.81', port=5000, debug=True, threaded=False)
Run Code Online (Sandbox Code Playgroud)

运行程序: python3 server.py

我知道现在已经晚了,但我相信这可以帮助其他人。