我不确定这是否特定于Flask,但是当我在开发模式( http://localhost:5000 )中运行应用程序时,我无法从网络上的其他计算机访问它(使用 http://[dev-host-ip]:5000 ) . 例如,在开发模式下使用Rails,它可以正常工作 . 我找不到任何有关Flask开发服务器配置的文档 . 知道应该配置什么来启用它吗?
http://localhost:5000
http://[dev-host-ip]:5000
虽然这是可能的,但您不应在 生产环境 中使用Flask开发服务器 . Flask开发服务器的设计不是特别安全,稳定或高效 . 有关正确的解决方案,请参阅deploying上的文档 .
将参数添加到 app.run() . 默认情况下,它在localhost上运行,将其更改为 app.run(host= '0.0.0.0') 以在您的计算机IP地址上运行 .
app.run()
app.run(host= '0.0.0.0')
在Quickstart page的"Externally Visible Server"下的Flask网站上记录:
外部可见服务器如果您运行服务器,您会注意到服务器只能从您自己的计算机上获得,而不能从网络中的任何其他计算机上获得 . 这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意Python代码 . 如果禁用了调试或信任网络上的用户,则可以使服务器公开 . 只需将run()方法的调用更改为:app.run(host ='0.0.0.0')这会告诉操作系统监听公共IP .
如果使用flask可执行文件启动服务器,则可以使用 flask run --host=0.0.0.0 更改默认值127.0.0.1并将其打开到非本地连接 . 其他答案描述的配置和app.run方法可能是更好的做法,但这也很方便 .
flask run --host=0.0.0.0
外部可见服务器如果您运行服务器,您会注意到服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问 . 这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意Python代码 . 如果禁用了调试器或信任网络上的用户,只需在命令行中添加--host = 0.0.0.0即可公开服务器:flask run --host = 0.0.0.0这告诉您的操作系统倾听所有公共IP .
参考:http://flask.pocoo.org/docs/0.11/quickstart/
如果您的 cool 应用程序有's configuration loaded from an external file, like in the following example, then don' t忘记用HOST = "0.0.0.0"更新相应的配置文件
cool
cool.app.run( host=cool.app.config.get("HOST", "localhost"), port=cool.app.config.get("PORT", 9000) )
将以下行添加到项目中
if __name__ == '__main__': app.debug = True app.run(host = '0.0.0.0',port=5005)
我有同样的问题,我使用PyCharm作为编辑器,当我创建项目时,PyCharm创建了一个Flask服务器 . 我所做的是用以下方式用Python创建服务器;
基本上我所做的是创建一个新服务器,但如果不是python则烧瓶
我希望它对你有所帮助
检查服务器上的特定端口是否已打开以便为客户端提供服务?
在Ubuntu或Linux发行版中
sudo ufw enable sudo ufw allow 5000/tcp //allow the server to handle the request on port 5000
配置应用程序以处理远程请求
app.run(host='0.0.0.0' , port=5000) python3 app.py & #run application in background
添加到@ Shawn的答案,还有一个内置配置变量SERVER_NAME . 我们可以在app.config.from_pyfile("config.py")中指定的配置文件中将其设置为0.0.0.0 . 另请注意,这将覆盖app.run主机名 .参考:http://flask.pocoo.org/docs/0.10/config/
7 回答
虽然这是可能的,但您不应在 生产环境 中使用Flask开发服务器 . Flask开发服务器的设计不是特别安全,稳定或高效 . 有关正确的解决方案,请参阅deploying上的文档 .
将参数添加到
app.run()
. 默认情况下,它在localhost上运行,将其更改为app.run(host= '0.0.0.0')
以在您的计算机IP地址上运行 .在Quickstart page的"Externally Visible Server"下的Flask网站上记录:
如果使用flask可执行文件启动服务器,则可以使用
flask run --host=0.0.0.0
更改默认值127.0.0.1并将其打开到非本地连接 . 其他答案描述的配置和app.run方法可能是更好的做法,但这也很方便 .参考:http://flask.pocoo.org/docs/0.11/quickstart/
如果您的
cool
应用程序有's configuration loaded from an external file, like in the following example, then don' t忘记用HOST = "0.0.0.0"更新相应的配置文件将以下行添加到项目中
我有同样的问题,我使用PyCharm作为编辑器,当我创建项目时,PyCharm创建了一个Flask服务器 . 我所做的是用以下方式用Python创建服务器;
基本上我所做的是创建一个新服务器,但如果不是python则烧瓶
我希望它对你有所帮助
检查服务器上的特定端口是否已打开以便为客户端提供服务?
在Ubuntu或Linux发行版中
配置应用程序以处理远程请求
添加到@ Shawn的答案,还有一个内置配置变量SERVER_NAME . 我们可以在app.config.from_pyfile("config.py")中指定的配置文件中将其设置为0.0.0.0 . 另请注意,这将覆盖app.run主机名 .
参考:http://flask.pocoo.org/docs/0.10/config/