Python Can';无法连接到Flask web服务,连接被拒绝
我正在尝试在Raspberry Pi和Flask上运行一个简单的web服务器。当我运行Flask应用程序时,它会显示: 继续 但当我用Chrome在我的笔记本电脑上输入这个地址时,我得到了 错误连接被拒绝Python Can';无法连接到Flask web服务,连接被拒绝,python,flask,Python,Flask,我正在尝试在Raspberry Pi和Flask上运行一个简单的web服务器。当我运行Flask应用程序时,它会显示: 继续 但当我用Chrome在我的笔记本电脑上输入这个地址时,我得到了 错误连接被拒绝 我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。要从另一台计算机连接,我需要做什么?您必须运行开发服务器,使其能够侦听所有接口上的请求,而不仅仅是本地接口上的请求 要求Flask收听0.0.0.0:端口号 或者您可以选择的任何其他端口运行应用程序,如下所示: if
我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。要从另一台计算机连接,我需要做什么?您必须运行开发服务器,使其能够侦听所有接口上的请求,而不仅仅是本地接口上的请求 要求Flask收听
0.0.0.0:端口号
或者您可以选择的任何其他端口运行应用程序,如下所示:
if __name__ == '__main__':
app.run(host='0.0.0.0')
它将使服务器更安全。如果机器的IP地址是
192.168.X.X
,那么您可以从同一网络的5000端口访问它。例如,当您通过flask run
运行服务器时,将其更改为flask run--host=0.0.0
若要进行连接,请查找运行脚本的服务器的IPV4地址。在同一网络上,转到
http://[IPV4地址]:5000
原因也可能是防火墙拒绝端口5000上的传入连接。尝试:
sudo ufw allow 5000
如果您以这种方式运行应用程序,那么您的服务器将在外部可见。
Setp的步骤:
如果您的
app.run()
中有debug=True
,则其他计算机也不会看到它。在app.run()中指定主机和端口,而不使用debug=True
- 两个设备必须连接到同一网络
- 使用
app.run(host='0.0.0',port=5000)
并使用您自己的Ipv4运行
像他的Ipv4地址一样的地址:5000
- 如果你正在连接android应用程序,那么别忘了
将INTERNET权限放入清单文件
127.0.0.1是本地主机地址,只能从raspi访问。为了从笔记本电脑获得访问权限,请打开raspi上的终端,然后尝试使用ifconfig
中的ip看起来应该类似于192.168.0.XX:5000。这假设它们都在同一个本地网络上。@jm\uuuuuuuuuuucode>ifconfig
返回192.168.1.103,我尝试了:5000
,但连接仍然被拒绝。是的,如果您想从同一台机器访问应用程序,请使用http://127.0.0.1:5000
对于那些想知道如何使用socketio实现这一点的人来说,仍然值得思考:socketio.run(app,host='0.0.0.0')出于某种原因flask run--host=0.0.0
可以工作,但app.run(host='0.0.0',port=5000)
和烧瓶运行
在Windows上不运行。@Sankalp我对您的问题的推断是,当您运行烧瓶运行
时,名称
不是“\uuuuuuuu main”
。因此,服务器会启动,但不会按照您在app.run()
中传递的参数启动。在flask run--host=0.0.0.0
中,主机是显式指定的。@Sankalp另一种方法是运行python.py
-这将使用您提供的参数运行服务器(为什么?原因很简单,因为这次\uu name\uuuuuuuuuuuu
是'\uuuuuu main\uuuuuuu'
)由于某种原因,flask run--host=0.0.0.0
可以运行,但是app.run(host=0.0.0',port=5000)
和flask run
在Windows上不运行。@Sankalp谢谢!就是这个,谢谢!为什么我必须使用IPv4地址而不使用localhost地址?@AlexF我无法证明这一点,因为我不是flask开发人员。但是当我在项目中工作的时候,这个配置对我很有效。非常感谢!这个小细节几乎毁了我的一天:这是不对的。在调试模式下运行的应用程序可以被网络上提供的其他计算机看到host='0.0.0'
,与此问题的其他答案相同Raspberry Pi没有ufw
嗨,我仍然有相同的问题。尽管我尝试了将所有ipv4地址都添加到127.0.0.1、0.0.0.1、localhost所有内容中。。仍然无法将Flutter连接到localhost:/上的flask后端。你能告诉我怎么解决这个问题吗?
app.run(host='0.0.0.0',port=5000)