tornado.autoreload ---自动检测开发中的代码更改

修改源文件时自动重新启动服务器。

大多数应用程序不应直接访问此模块。相反,传递关键字参数 autoreload=Truetornado.web.Application 构造函数(或 debug=True ,这将启用此设置和其他一些设置)。这将启用自动加载模式,并检查模板和静态资源的更改。请注意,重新启动是一个破坏性操作,当进程重新启动时,正在进行的任何请求都将中止。(如果要在使用其他调试模式功能时禁用自动加载,请同时传递 debug=Trueautoreload=False

这个模块还可以用作命令行包装器,包装诸如单元测试运行程序之类的脚本。见 main 详细信息的方法。

命令行包装器和应用程序调试模式可以一起使用。当包装器捕获语法错误和其他导入时失败时,建议使用此组合,而调试模式在服务器启动后捕获更改。

此模块在以下情况下无法正常工作: HTTPServer 使用的是多进程模式。

重新加载会丢失任何python解释器命令行参数(例如 -u )因为它使用 sys.executablesys.argv . 此外,修改这些变量将导致重新加载行为不正确。

tornado.autoreload.start(check_time: int = 500) None[源代码]

开始监视源文件的更改。

在 5.0 版更改: 这个 io_loop 已删除参数(自4.1版以来已弃用)。

tornado.autoreload.wait() None[源代码]

等待被监视的文件更改,然后重新启动该进程。

用于脚本(如单元测试运行程序)的末尾,以便在任何源文件更改后再次运行测试(另请参见中的命令行界面 main

tornado.autoreload.watch(filename: str) None[源代码]

将文件添加到监视列表。

默认情况下,监视所有导入的模块。

tornado.autoreload.add_reload_hook(fn: Callable[[], None]) None[源代码]

在重新加载进程之前添加要调用的函数。

注意,对于打开的文件和套接字句柄,通常最好设置 FD_CLOEXEC 标志(使用) fcntlos.set_inheritable )而不是使用重新加载挂钩来关闭它们。

tornado.autoreload.main() None[源代码]

命令行包装器,用于在脚本的源代码更改时重新运行该脚本。

脚本可以通过文件名或模块名指定:

python -m tornado.autoreload -m tornado.test.runtests
python -m tornado.autoreload tornado/test/runtests.py

使用此包装器运行脚本类似于调用 tornado.autoreload.wait 在脚本的末尾,但是这个包装器可以捕获导入时的问题,例如语法错误,否则将阻止脚本调用 wait .