繁体   English   中英

如何在不重新启动服务器的情况下更改和重新加载女服务员的python代码?

[英]How to change and reload python code in waitress without restarting the server?

我正在使用女服务员来提供 Web 应用程序内容,例如。

waitress-serve --port=8000 myapp:application

在开发过程中,当我更改代码时,我必须不断地重新启动女服务员才能看到我的更改。 有没有标准的方法可以自动化这个?

我知道这是一个老问题,但我在尝试使用 Falcon 框架为我的 REST API 启用热重载功能时遇到了类似的问题。

Waitress 不监视文件更改,但您可以在其上使用hupper 很简单:

$ pip install hupper
$ hupper -m waitress --port=8000 myapp:application

它也适用于 Windows。

根据@Dirk 的评论,我找到了指向提到的片段的 archive.org 链接 我能够通过直接使用 Werkseug 重新加载 Waitress。 使用 Werkzeug 的装饰器run_with_reloader会导致应用程序在 Python 文件更改时重新启动。 (Werkzeug 在 Flask 中使用,所以它应该可用)。

此外, app.debug = True行会导致 Flask 在模板文件更改时重新加载它们。 因此,考虑到您的特定情况,您可能希望两者兼而有之。

import werkzeug.serving

@werkzeug.serving.run_with_reloader
def run_server():
    app.debug = True
    waitress.serve(app, listen='127.0.0.1:4432')

if __name__ == '__main__':
    run_server()

一旦我以这种方式设置了我的服务器,它就会在任何文件更改时自动重新加载服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM