Hello world flask应用程序在将主机自定义为“0.0.0.0”时停止工作

2024-09-28 18:47:51 发布

您现在位置:Python中文网/ 问答频道 /正文

如果您初始化默认的PyStarter项目,或者只遵循启动"hello world"的第一节,或者只执行以下操作:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


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

你的密码和我的一样。它工作正常,直到我将host参数更改为0.0.0.0,然后应用程序启动如下:

$ python app.py
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

然后当我转到该链接时,我得到一个无效地址错误:

我需要使用0.0.0.0而不是127.0.0.1,因为这是AWS用于开放连接的IP地址

我怎样才能让0.0.0.0地址在本地工作

我正在Windows上工作


Tags: 项目namefromimportappflaskhelloworld
2条回答

0.0.0.0表示所有IPv4地址,因此将其用作目标地址或主机地址是不正确的。通常,它用于指定I未来地址的所有ip源ip地址

因此,您应该给出127.0.0.1或您的机器ip地址 [链接]https://www.rfc-editor.org/rfc/rfc5735

我猜这里的问题是防火墙拒绝连接或某种Windows策略,而不是IP地址问题。可能是配置为允许127.0.0.0/8但不允许0.0.0.0的代理

0.0.0.0是一个完全有效的IP地址,即使对于客户端也是如此。当您绑定到它时,它只意味着侦听主机上配置的所有IP地址

如果您在运行Flask应用程序的同一台机器上运行浏览器,您甚至可以简单地将其指向http://0:5000,它将显示内容

如果您在AWS上运行应用程序并试图从远程计算机访问,则需要指定AWS实例的公共IP地址,因为0.0.0.0是不可路由的IP地址(与任何保留的专用空间IP地址一样,如10.0.0.0/8127.0.0.0/8192.168.0.0/16172.16.0.0/12

相关问题 更多 >