【问题标题】:Why doesn't PyCharm run a flask webapp in HTTPS?为什么 PyCharm 不在 HTTPS 中运行烧瓶 webapp?
【发布时间】:2020-04-20 13:52:47
【问题描述】:

我在我的应用程序末尾添加了以下代码行:

if __name__ == "__main__":
    app.run(ssl_context="adhoc")

但是我在 PyCharm 中运行项目时得到的输出是

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

但是,当我使用命令 python app.py 从终端 (Alt+F12) 运行应用程序时 我得到了输出

* Running on https://127.0.0.1:5000/ (Press CTRL+C to quit)

这背后的原因是什么?有没有办法使用 PyCharm 运行它?每次都输入命令相当繁琐。

【问题讨论】:

    标签: python flask pycharm


    【解决方案1】:

    首先:

    # get app from somewhere
    app = create_app()
    
    if __name__ == "__main__":
        app.run(ssl_context="adhoc")
    

    只有当你像python main.py 这样直接启动脚本时它才会起作用。在本例中,__name__ 等于 "__main__"

    其次,当您使用flask run 运行您的应用程序时,我认为这是您的IDE 使用的方式,if 条件将是False,因此app.run(ssl_context="adhoc") 这一行甚至不会运行。


    最后,如果你想在生产中使用它,你应该直接配置app。或者使用反向代理服务器,例如nginx。其实我推荐后一种方法。

    【讨论】:

      【解决方案2】:

      我不确定,但变化很大,您可以使用flask run 启动您的应用程序。您可以尝试使用基本启动命令将其设置为标准 python 项目,例如:python application.py

      【讨论】:

      • 但是如果我将我的项目部署在网络服务器上,flask 命令不起作用会产生什么影响吗?
      • 您不应在“网络服务器”上使用烧瓶内置 werkzeug 服务器。请改用uwsgigunicorn
      【解决方案3】:

      在 Pycharm 的 Run/Debug Configurations 菜单中将选项 --cert=adhoc 添加到服务器配置中。

      【讨论】:

        猜你喜欢
        • 2019-09-21
        • 1970-01-01
        • 2020-01-31
        • 1970-01-01
        • 1970-01-01
        • 2021-09-12
        • 2014-02-03
        • 1970-01-01
        相关资源
        最近更新 更多