我不确定这是否是特定的Flask,但当我在dev模式下运行应用程序(http://localhost:5000)时,我无法从网络上的其他机器访问它(使用http://[dev-host-ip]:5000)。例如,当Rails处于开发模式时,它工作得很好。我找不到任何关于Flask开发服务器配置的文档。你知道应该配置什么来实现这个功能吗?


当前回答

如果你的酷应用程序从外部文件加载了它的配置,就像下面的例子,那么不要忘记用HOST="0.0.0.0"更新相应的配置文件

cool.app.run(
    host=cool.app.config.get("HOST", "localhost"),
    port=cool.app.config.get("PORT", 9000)
)            

其他回答

如果你在访问使用PyCharm部署的Flask服务器时遇到问题,请考虑以下因素:

PyCharm不会直接运行你的主.py文件,因此if __name__ == '__main__':中的任何代码都不会被执行,并且任何更改(如app.run(host='0.0.0.0', port=5000))都不会生效。

相反,您应该使用Run Configurations配置Flask服务器,特别是将——host 0.0.0.0——port 5000放置到附加选项字段中。

更多关于配置Flask服务器在PyCharm

这最终对我有用。

import os

然后把它放在你的python app.py或主文件的末尾。

if __name__ == "__main__":
    port = int(os.environ.get("PORT", 5000))
    app.run(host='0.0.0.0', port=port)

对我来说,我遵循上面的答案,并稍加修改:

只需在命令提示符上使用ipconfig获取ipv4地址 转到flask代码所在的文件 在主函数中写入app.run(host= '你的ipv4地址')

Eg:

您还可以通过环境变量设置主机(将其暴露在面向IP地址的网络上)和端口。

$ export FLASK_APP=app.py
$ export FLASK_ENV=development
$ export FLASK_RUN_PORT=8000
$ export FLASK_RUN_HOST=0.0.0.0

$ flask run
 * Serving Flask app "app.py" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on https://0.0.0.0:8000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 329-665-000

参见如何获取所有可用的命令选项来设置环境变量?

以防你需要从外部网络测试你的应用程序。 只要用ngrok.com把它提供给整个互联网 它会像开发服务器一样部署它,但很快就会在本地部署,为我节省了很多时间,不,我和那家公司没有关系:)

只需要确保在你的flask应用程序中更改端口: app.run(主机= 0.0.0.0,端口= 80)