【问题标题】:Python: Automatically restart WSGIServer+Bottle app on file changesPython:在文件更改时自动重启 WSGIServer+Bottle 应用程序
【发布时间】:2020-02-29 00:16:45
【问题描述】:

我正在使用 Bottle & Gevent 来拥有一个 HTTP + WebSockets 服务器。如果我要在 Node 中实现这一点,我会使用 Nodemon 或类似工具在开发时更改代码时重新启动服务器。如果我只使用 Bottle 和 run 方法,我相信我可以使用 run(reloader=True) — 但是我正在使用 WSGIServer 运行应用程序。鉴于此,我怎样才能拥有我所追求的自动重载功能?

http_server = WSGIServer(('127.0.0.1', 8080), app, handler_class=WebSocketHandler)

【问题讨论】:

    标签: python bottle wsgiserver


    【解决方案1】:

    您不需要外部模块。如果您设置 debug=True,它将在每次代码更改后重新加载。根据您设置应用的方式,您可以使用应用工厂进行设置:

    def create_app(config, debug=True):
       ....
    

    或从命令行:

    app.run(debug=True)
    

    $ export FLASK_DEBUG=1
    $ flask run
    

    【讨论】:

    • 用户没有运行 Flask 应用。
    【解决方案2】:

    searching on pypi 之后,我认为server-reloader 会按照你的要求去做。

    【讨论】:

    • 我会检查一下。我希望有一些标志可以传递给服务器本身。在这种情况下,我可能只使用 nodemon 或类似工具并让它监视 Python 文件(例如 nodemon --exec "python -v" ./app.py)。这将具有额外的好处,可以根据需要监控其他资产 (nodemon --watch app --watch libs --exec "python -v" ./app.py)。
    【解决方案3】:

    在您的 app.py 或 python 文件中添加以下行

    app = Flask(__name__)
    app.config['DEBUG'] = True
    

    【讨论】:

    • 问题是关于瓶,而不是烧瓶。
    猜你喜欢
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多