我不确定这是否是 Flask 特定的,但是当我在开发模式下运行应用程序时(http://localhost:5000
),我无法从网络上的其他机器访问它(使用http://[dev-host-ip]:5000
)。例如,当 Rails 处于开发模式时,它可以正常工作。我找不到任何有关 Flask 开发服务器配置的文档。知道应该配置什么来启用此功能吗?
虽然这是可能的,但您不应该在生产中使用 Flask 开发服务器。 Flask 开发服务器的设计并不是特别安全、稳定或高效。请参阅文档部署 https://flask.palletsprojects.com/deploying/index.html以获得正确的解决方案。
The --host
选项flask run
, 或者host
参数为app.run()
,控制开发服务器监听的地址。默认情况下它运行在localhost
,将其更改为flask run --host=0.0.0.0
(or app.run(host="0.0.0.0")
) 在您计算机的所有 IP 地址上运行。
0.0.0.0
是一个特殊值,您不能直接在浏览器中使用,您需要导航到网络上计算机的实际 IP 地址。您可能还需要调整防火墙以允许外部访问该端口。
烧瓶快速入门文档 https://flask.palletsprojects.com/quickstart/#a-minimal-application在“外部可见服务器”部分对此进行解释:
如果您运行服务器,您会发现该服务器仅
可从您自己的计算机访问,而不是从网络中的任何其他计算机访问。
这是默认设置,因为在调试模式下,用户
应用程序可以在您的计算机上执行任意Python代码。
如果您禁用了调试器或信任网络上的用户,
您只需添加即可使服务器公开可用--host=0.0.0.0
到命令行:
$ flask run --host=0.0.0.0
这告诉您的操作系统侦听所有公共 IP。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)