无法连接到Flask Web服务,连接被拒绝

时间:2015-05-31 06:53:47

标签: python flask

我正在尝试使用Flask在Raspberry Pi上运行一个简单的Web服务器。当我运行我的Flask应用程序时,它说:

  

http://127.0.0.1:5000/上运行

但是当我在Chrome中的笔记本电脑上输入此地址时,我

  

ERR_CONNECTION_REFUSED

我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。从另一台计算机连接需要做什么?

8 个答案:

答案 0 :(得分:93)

像这样运行您的应用:

if __name__ == '__main__':
    app.run(host='0.0.0.0')

它将使服务器externally visible。如果计算机的IP地址为192.168.X.X,则可以在同一网络中通过5000端口访问该IP地址。比如,http://192.168.X.X:5000

答案 1 :(得分:5)

当您通过flask run运行服务器时,请将其更改为flask run --host=0.0.0.0 连接,找到运行脚本的服务器的IPV4地址。在同一网络上,转到http://[IPV4 address]:5000

答案 2 :(得分:5)

原因也可能是防火墙拒绝端口5000上的传入连接。尝试:

sudo ufw allow 5000

答案 3 :(得分:3)

您必须运行开发服务器,以便它监听所有接口上的请求,而不仅仅是本地接口上的请求

要求Flask听0.0.0.0:PORT_NUMBER

或您可以选择的任何其他端口

答案 4 :(得分:3)

app.run(host='0.0.0.0',port=5000)

如果您以这种方式运行您的应用,那么您的服务器将在外部可见。 步骤Setp:

  1. 使用以下命令运行您的应用

    <强> app.run(主机= '0.0.0.0',端口= 5000)

  2. 转到窗口cmd。输入 ipconfig 并获取IPV4地址,假设您的IPV4地址为192.168.X.X

  3. 转到移动浏览器并输入 192.168.X.X:5000

答案 5 :(得分:0)

禁用代理对我有用。

答案 6 :(得分:0)

如果您的app.run()中包含“ debug = True”,那么其他计算机也将看不到它。在app.run()中指定主机和端口,而不使用“ debug = True”。

答案 7 :(得分:0)

  • 两个设备都必须连接到同一网络。
  • 使用var a = [1, 2, 3]; var b = '1, 2, 3'; console.log(a == b); // Outputs true console.log(a === b); //Outputs false并运行自己的Ipv4 像他的http://[Your Ipv4地址]:5000
  • 如果您将其与android应用程序连接,请不要忘记 在清单文件中添加INTERNET权限。