首页 文章

将Flask dev服务器配置为在整个网络中可见

提问于
浏览 281
280

我不确定这是否特定于Flask,但是当我在开发模式( http://localhost:5000 )中运行应用程序时,我无法从网络上的其他计算机访问它(使用 http://[dev-host-ip]:5000 ) . 例如,在开发模式下使用Rails,它可以正常工作 . 我找不到任何有关Flask开发服务器配置的文档 . 知道应该配置什么来启用它吗?

7 回答

  • 489

    将以下行添加到项目中

    if __name__ == '__main__':
        app.debug = True
        app.run(host = '0.0.0.0',port=5005)
    
  • 58

    检查服务器上的特定端口是否已打开以便为客户端提供服务?

    在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
    
  • 14

    如果使用flask可执行文件启动服务器,则可以使用 flask run --host=0.0.0.0 更改默认值127.0.0.1并将其打开到非本地连接 . 其他答案描述的配置和app.run方法可能是更好的做法,但这也很方便 .

    外部可见服务器如果您运行服务器,您会注意到服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问 . 这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意Python代码 . 如果禁用了调试器或信任网络上的用户,只需在命令行中添加--host = 0.0.0.0即可公开服务器:flask run --host = 0.0.0.0这告诉您的操作系统倾听所有公共IP .

    参考:http://flask.pocoo.org/docs/0.11/quickstart/

  • 8

    添加到@ Shawn的答案,还有一个内置配置变量SERVER_NAME . 我们可以在app.config.from_pyfile("config.py")中指定的配置文件中将其设置为0.0.0.0 . 另请注意,这将覆盖app.run主机名 .
    参考:http://flask.pocoo.org/docs/0.10/config/

  • 2

    我有同样的问题,我使用PyCharm作为编辑器,当我创建项目时,PyCharm创建了一个Flask服务器 . 我所做的是用以下方式用Python创建服务器;

    Config Python Server PyCharm
    基本上我所做的是创建一个新服务器,但如果不是python则烧瓶

    我希望它对你有所帮助

  • 0

    如果您的 cool 应用程序有's configuration loaded from an external file, like in the following example, then don' t忘记用HOST = "0.0.0.0"更新相应的配置文件

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

    虽然这是可能的,但您不应在 生产环境 中使用Flask开发服务器 . Flask开发服务器的设计不是特别安全,稳定或高效 . 有关正确的解决方案,请参阅deploying上的文档 .


    将参数添加到 app.run() . 默认情况下,它在localhost上运行,将其更改为 app.run(host= '0.0.0.0') 以在您的计算机IP地址上运行 .

    Quickstart page的"Externally Visible Server"下的Flask网站上记录:

    外部可见服务器如果您运行服务器,您会注意到服务器只能从您自己的计算机上获得,而不能从网络中的任何其他计算机上获得 . 这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意Python代码 . 如果禁用了调试或信任网络上的用户,则可以使服务器公开 . 只需将run()方法的调用更改为:app.run(host ='0.0.0.0')这会告诉操作系统监听公共IP .

相关问题