【问题标题】:Unable to connect to Flask local server无法连接到 Flask 本地服务器
【发布时间】:2020-09-11 22:43:14
【问题描述】:

我正在尝试使用 python 和 Flask 构建一个 Web 应用程序。我开始在 Ubuntu 上开发它,到目前为止它工作正常。

但是,将项目拉入安装了相同先决条件的 Windows 环境不起作用。更详细一点,运行输出看起来还不错

 * Serving Flask app "main" (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
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 239-929-141
 * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)

但是当访问 0.0.0.0:8080 时,浏览器无法访问它。并且没有更多与正在发生的事情相关的输出。

我也使用基本的 hello world flask 应用程序对此进行了测试,结果是相同的(在 Windows 上)。知道操作系统是否是这里的问题吗?或者还能是什么?

【问题讨论】:

    标签: python linux windows flask web-applications


    【解决方案1】:

    http://0.0.0.0 通常不起作用,您可能需要在浏览器中切换到 http://localhost:8080。

    同时验证您已将烧瓶设置为使用 0.0.0.0 而不是 127.0.0.1。

    我想我应该解释第二部分,在 routes.py 文件中,您要确保将主机设置为 0.0.0.0,否则您将无法访问它。所以在你的routes.py 底部确保你有:

    from flask import Flask
    app = Flask(__name__)
    app.run(host="0.0.0.0")
    

    【讨论】:

    • 神奇地起作用了。如果 name == 'main',则 Flask 设置为 0.0.0.0:app.run(host='0.0.0.0', port='8080', debug=True ) 将其设置为 127.0.0.1 也可以,并且还在浏览器中将 0.0.0.0 更改为 'localhost'。你知道为什么它在 Windows 上会这样吗?
    • @RazvanVilceanu 完美,只是为了给你更多细节 Ubuntu 的设置就像一个理性的人会编写一个操作系统,所以它会自动转发主机名,这样它就可以在没有这种解决方法的情况下工作。在 Windows 上,您需要指定要使用 0.0.0.0,因为 Windows 认为阻止此行为是“良好的安全性”(值得商榷)。很高兴听到它起作用了:)
    猜你喜欢
    • 2017-12-09
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2015-07-29
    • 2016-06-30
    • 2014-06-14
    相关资源
    最近更新 更多