Flask 应用程序未在本地主机上运行,没有错误

问题描述 投票:0回答:2

与此类似的代码工作正常,然后突然不行,我不知道为什么。希望有人可以提供帮助。我有以下内容:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Hi"


if __name__ == "__main__":
    app.run(debug=True)

当我运行它时,输出如下:

* 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: on

没有错误,但也没有“在 http://localhost:5000/ 上运行”,并且该 URL 上没有加载任何内容(“无法访问此站点”)等。 我尝试过多种方式指定主机以及许多其他事情。还是一样得到。以前它工作正常,说“在 http://localhost:5000/ 上运行”,在我的浏览器中加载正常,等等。

我在这里缺少什么?

python flask
2个回答
1
投票

您可以在脚本上显式设置主机和端口:

# ...
if __name__ == "__main__":
    app.run(host='localhost', port=5000, debug=True) # or setting host to '0.0.0.0'


0
投票

我也遇到了同样的问题,但已经解决了。我从 Windows 迁移到 macOS。它与 apache 服务器有关,我们必须将虚拟主机绑定到 Flask 代理

  1. 加载所需的模块:确保在您的 Apache 配置中加载以下模块(httpd.conf),通常位于“/usr/local/etc/httpd/httpd.conf”或“/etc/apache2/ httpd.conf” 添加或取消注释以下行

LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

  1. 添加 ProxyPass 和 ProxyPassReverse 指令: 在 Apache 配置文件中,添加以下指令以将请求代理到 Flask 应用程序

<VirtualHost *:80>
    ServerName localhost
    ProxyPass "/" "http://localhost:5000/"
    ProxyPassReverse "/" "http://localhost:5000/"
</VirtualHost>
将“/”替换为适当的路径,或使用维护“/”作为根目录,并将“http://localhost:5000/”调整为您的 Flask 应用程序中配置的正确代理

  1. 重新启动 Apache:编辑配置文件后,重新启动 Apache 以应用更改:

sudo apachectl restart

© www.soinside.com 2019 - 2024. All rights reserved.